{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-02T01:18:46.885087Z",
     "start_time": "2021-07-02T01:18:45.319508Z"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "from sklearn.model_selection import train_test_split\n",
    "import os\n",
    "import tqdm\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.metrics import confusion_matrix\n",
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn.metrics import roc_auc_score\n",
    "from sklearn.metrics import roc_curve\n",
    "from sklearn.metrics import cohen_kappa_score\n",
    "from sklearn.metrics import precision_recall_curve\n",
    "from sklearn.model_selection import cross_val_score\n",
    "import variable_bin_methods as vbm\n",
    "import pickle\n",
    "import copy\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib\n",
    "from sklearn.model_selection import GridSearchCV"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-02T01:18:58.658856Z",
     "start_time": "2021-07-02T01:18:46.887104Z"
    }
   },
   "outputs": [],
   "source": [
    "data_train = pd.read_excel('最终2018年改变分箱最后19个特征数据的入模训练集.xlsx')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-02T01:19:03.581988Z",
     "start_time": "2021-07-02T01:18:58.676958Z"
    }
   },
   "outputs": [],
   "source": [
    "data_test_1 = pd.read_excel('最终2019年-1改变分箱最后19个特征数据的入模测试集.xlsx')\n",
    "data_test_2 = pd.read_excel('最终2019年-2改变分箱最后19个特征数据的入模测试集.xlsx')\n",
    "data_test_3 = pd.read_excel('最终2019年-3改变分箱最后19个特征数据的入模测试集.xlsx')\n",
    "data_test_4 = pd.read_excel('最终2019年-4改变分箱最后19个特征数据的入模测试集.xlsx')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_train = data_train.drop(columns = ['mths_since_recent_inq'])\n",
    "data_test_1 = data_test_1.drop(columns = ['mths_since_recent_inq'])\n",
    "data_test_2 = data_test_2.drop(columns = ['mths_since_recent_inq'])\n",
    "data_test_3 = data_test_3.drop(columns = ['mths_since_recent_inq'])\n",
    "data_test_4 = data_test_4.drop(columns = ['mths_since_recent_inq'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-02T01:18:58.674963Z",
     "start_time": "2021-07-02T01:18:58.660869Z"
    }
   },
   "outputs": [],
   "source": [
    "X_train = data_train.drop(columns = ['loan_status'])\n",
    "y_train = data_train['loan_status']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-02T01:19:03.597395Z",
     "start_time": "2021-07-02T01:19:03.583990Z"
    }
   },
   "outputs": [],
   "source": [
    "X_test_1 = data_test_1.drop(columns = ['loan_status'])\n",
    "y_test_1 = data_test_1['loan_status']\n",
    "X_test_2 = data_test_2.drop(columns = ['loan_status'])\n",
    "y_test_2 = data_test_2['loan_status']\n",
    "X_test_3 = data_test_3.drop(columns = ['loan_status'])\n",
    "y_test_3 = data_test_3['loan_status']\n",
    "X_test_4 = data_test_4.drop(columns = ['loan_status'])\n",
    "y_test_4 = data_test_4['loan_status']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 模型训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-02T01:19:14.076906Z",
     "start_time": "2021-07-02T01:19:14.063905Z"
    }
   },
   "outputs": [],
   "source": [
    "LR_model = LogisticRegression(C = 0.01,penalty = 'l2',solver = 'saga',\n",
    "                                class_weight = {1: 1, 0: 1})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-02T01:19:14.765058Z",
     "start_time": "2021-07-02T01:19:14.078906Z"
    }
   },
   "outputs": [],
   "source": [
    "LR_model_fit = LR_model.fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-02T01:19:14.781063Z",
     "start_time": "2021-07-02T01:19:14.767060Z"
    }
   },
   "outputs": [],
   "source": [
    "## 保存模型\n",
    "LR_model_save = open('LR_model_fit.pkl','wb')\n",
    "pickle.dump(LR_model_fit,LR_model_save)\n",
    "LR_model_save.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred_lr = LR_model_fit.predict(X_train)\n",
    "y_proba_lr = LR_model_fit.predict_proba(X_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-02T01:19:14.797067Z",
     "start_time": "2021-07-02T01:19:14.784066Z"
    }
   },
   "outputs": [],
   "source": [
    "y_pred_lr_1 = LR_model_fit.predict(X_test_1)\n",
    "y_proba_lr_1 = LR_model_fit.predict_proba(X_test_1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred_lr_2 = LR_model_fit.predict(X_test_2)\n",
    "y_proba_lr_2 = LR_model_fit.predict_proba(X_test_2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred_lr_3 = LR_model_fit.predict(X_test_3)\n",
    "y_proba_lr_3 = LR_model_fit.predict_proba(X_test_3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred_lr_4 = LR_model_fit.predict(X_test_4)\n",
    "y_proba_lr_4 = LR_model_fit.predict_proba(X_test_4)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 模型评估"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 混淆矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-02T01:19:14.843078Z",
     "start_time": "2021-07-02T01:19:14.800069Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>预测为好</th>\n",
       "      <th>预测为坏</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>标签为好</th>\n",
       "      <td>24062</td>\n",
       "      <td>155</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>标签为坏</th>\n",
       "      <td>9186</td>\n",
       "      <td>216</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       预测为好  预测为坏\n",
       "标签为好  24062   155\n",
       "标签为坏   9186   216"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cm_lr1 = confusion_matrix(y_test_1,y_pred_lr_1)\n",
    "cm_lr1 = pd.DataFrame(cm_lr1,index = [\"标签为好\",\"标签为坏\"],columns = ['预测为好','预测为坏'])\n",
    "cm_lr1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>预测为好</th>\n",
       "      <th>预测为坏</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>标签为好</th>\n",
       "      <td>23942</td>\n",
       "      <td>183</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>标签为坏</th>\n",
       "      <td>9272</td>\n",
       "      <td>198</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       预测为好  预测为坏\n",
       "标签为好  23942   183\n",
       "标签为坏   9272   198"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cm_lr2 = confusion_matrix(y_test_2,y_pred_lr_2)\n",
    "cm_lr2 = pd.DataFrame(cm_lr2,index = [\"标签为好\",\"标签为坏\"],columns = ['预测为好','预测为坏'])\n",
    "cm_lr2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>预测为好</th>\n",
       "      <th>预测为坏</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>标签为好</th>\n",
       "      <td>24339</td>\n",
       "      <td>209</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>标签为坏</th>\n",
       "      <td>9024</td>\n",
       "      <td>220</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       预测为好  预测为坏\n",
       "标签为好  24339   209\n",
       "标签为坏   9024   220"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cm_lr3 = confusion_matrix(y_test_3,y_pred_lr_3)\n",
    "cm_lr3 = pd.DataFrame(cm_lr3,index = [\"标签为好\",\"标签为坏\"],columns = ['预测为好','预测为坏'])\n",
    "cm_lr3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>预测为好</th>\n",
       "      <th>预测为坏</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>标签为好</th>\n",
       "      <td>23994</td>\n",
       "      <td>164</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>标签为坏</th>\n",
       "      <td>9193</td>\n",
       "      <td>190</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       预测为好  预测为坏\n",
       "标签为好  23994   164\n",
       "标签为坏   9193   190"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cm_lr4 = confusion_matrix(y_test_4,y_pred_lr_4)\n",
    "cm_lr4 = pd.DataFrame(cm_lr4,index = [\"标签为好\",\"标签为坏\"],columns = ['预测为好','预测为坏'])\n",
    "cm_lr4"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 评估指标"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-02T01:19:14.907091Z",
     "start_time": "2021-07-02T01:19:14.845078Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率_1</th>\n",
       "      <th>AUC_1</th>\n",
       "      <th>KS值_1</th>\n",
       "      <th>kappa_1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>逻辑回归</th>\n",
       "      <td>0.722151</td>\n",
       "      <td>0.63833</td>\n",
       "      <td>0.193261</td>\n",
       "      <td>0.023469</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         准确率_1    AUC_1     KS值_1   kappa_1\n",
       "逻辑回归  0.722151  0.63833  0.193261  0.023469"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc_lr1 = accuracy_score(y_test_1,y_pred_lr_1)\n",
    "kappa_lr1 = cohen_kappa_score(y_test_1,y_pred_lr_1)\n",
    "auc_lr1 = roc_auc_score(y_test_1, y_proba_lr_1[:,1])\n",
    "fpr_lr1, tpr_lr1, thresholds_roc_lr2 = roc_curve(y_test_1, y_proba_lr_1[:,1])\n",
    "ks_lr1 = max([trp_1 - fpr_1 for trp_1, fpr_1 in zip(tpr_lr1, fpr_lr1)])\n",
    "results1 = pd.DataFrame()\n",
    "results1['准确率_1'] = [acc_lr1]\n",
    "results1['AUC_1'] = [auc_lr1]\n",
    "results1['KS值_1'] = [ks_lr1]\n",
    "results1['kappa_1'] = [kappa_lr1]\n",
    "results1.index = ['逻辑回归']\n",
    "results1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率_2</th>\n",
       "      <th>AUC_2</th>\n",
       "      <th>KS值_2</th>\n",
       "      <th>kappa_2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>逻辑回归</th>\n",
       "      <td>0.718559</td>\n",
       "      <td>0.632822</td>\n",
       "      <td>0.188387</td>\n",
       "      <td>0.018804</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         准确率_2     AUC_2     KS值_2   kappa_2\n",
       "逻辑回归  0.718559  0.632822  0.188387  0.018804"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc_lr2 = accuracy_score(y_test_2,y_pred_lr_2)\n",
    "kappa_lr2 = cohen_kappa_score(y_test_2,y_pred_lr_2)\n",
    "auc_lr2 = roc_auc_score(y_test_2, y_proba_lr_2[:,1])\n",
    "fpr_lr2, tpr_lr2, thresholds_roc_lr2 = roc_curve(y_test_2, y_proba_lr_2[:,1])\n",
    "ks_lr2 = max([trp_2 - fpr_2 for trp_2, fpr_2 in zip(tpr_lr2, fpr_lr2)])\n",
    "results2 = pd.DataFrame()\n",
    "results2['准确率_2'] = [acc_lr2]\n",
    "results2['AUC_2'] = [auc_lr2]\n",
    "results2['KS值_2'] = [ks_lr2]\n",
    "results2['kappa_2'] = [kappa_lr2]\n",
    "results2.index = ['逻辑回归']\n",
    "results2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率_3</th>\n",
       "      <th>AUC_3</th>\n",
       "      <th>KS值_3</th>\n",
       "      <th>kappa_3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>逻辑回归</th>\n",
       "      <td>0.72677</td>\n",
       "      <td>0.635877</td>\n",
       "      <td>0.193716</td>\n",
       "      <td>0.021751</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        准确率_3     AUC_3     KS值_3   kappa_3\n",
       "逻辑回归  0.72677  0.635877  0.193716  0.021751"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc_lr = accuracy_score(y_test_3,y_pred_lr_3)\n",
    "kappa_lr = cohen_kappa_score(y_test_3,y_pred_lr_3)\n",
    "auc_lr = roc_auc_score(y_test_3, y_proba_lr_3[:,1])\n",
    "fpr_lr, tpr_lr, thresholds_roc_lr = roc_curve(y_test_3,y_proba_lr_3[:,1])\n",
    "ks_lr = max([trp_ - fpr_ for trp_, fpr_ in zip(tpr_lr, fpr_lr)])\n",
    "results3 = pd.DataFrame()\n",
    "results3['准确率_3'] = [acc_lr]\n",
    "results3['AUC_3'] = [auc_lr]\n",
    "results3['KS值_3'] = [ks_lr]\n",
    "results3['kappa_3'] = [kappa_lr]\n",
    "results3.index = ['逻辑回归']\n",
    "results3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率_4</th>\n",
       "      <th>AUC_4</th>\n",
       "      <th>KS值_4</th>\n",
       "      <th>kappa_4</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>逻辑回归</th>\n",
       "      <td>0.721028</td>\n",
       "      <td>0.635129</td>\n",
       "      <td>0.192104</td>\n",
       "      <td>0.019073</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         准确率_4     AUC_4     KS值_4   kappa_4\n",
       "逻辑回归  0.721028  0.635129  0.192104  0.019073"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc_lr = accuracy_score(y_test_4,y_pred_lr_4)\n",
    "kappa_lr = cohen_kappa_score(y_test_4,y_pred_lr_4)\n",
    "auc_lr = roc_auc_score(y_test_4, y_proba_lr_4[:,1])\n",
    "fpr_lr, tpr_lr, thresholds_roc_lr = roc_curve(y_test_4,y_proba_lr_4[:,1])\n",
    "ks_lr = max([trp_ - fpr_ for trp_, fpr_ in zip(tpr_lr, fpr_lr)])\n",
    "results4 = pd.DataFrame()\n",
    "results4['准确率_4'] = [acc_lr]\n",
    "results4['AUC_4'] = [auc_lr]\n",
    "results4['KS值_4'] = [ks_lr]\n",
    "results4['kappa_4'] = [kappa_lr]\n",
    "results4.index = ['逻辑回归']\n",
    "results4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "acc1=[results1['准确率_1'],results2['准确率_2'],results3['准确率_3'],results4['准确率_4']]\n",
    "ac1=np.mean(acc1)\n",
    "bc1=np.std(acc1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "acc2=[results1['AUC_1'],results2['AUC_2'],results3['AUC_3'],results4['AUC_4']]\n",
    "ac2=np.mean(acc2)\n",
    "bc2=np.std(acc2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "acc3=[results1['KS值_1'],results2['KS值_2'],results3['KS值_3'],results4['KS值_4']]\n",
    "ac3=np.mean(acc3)\n",
    "bc3=np.std(acc3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "acc4=[results1['kappa_1'],results2['kappa_2'],results3['kappa_3'],results4['kappa_4']]\n",
    "ac4=np.mean(acc4)\n",
    "bc4=np.std(acc4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率的均值</th>\n",
       "      <th>准确率的方差</th>\n",
       "      <th>AUC的均值</th>\n",
       "      <th>KS值的均值</th>\n",
       "      <th>kappa的均值</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>逻辑回归</th>\n",
       "      <td>0.722127</td>\n",
       "      <td>0.002979</td>\n",
       "      <td>0.635539</td>\n",
       "      <td>0.191867</td>\n",
       "      <td>0.020774</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        准确率的均值    准确率的方差    AUC的均值    KS值的均值  kappa的均值\n",
       "逻辑回归  0.722127  0.002979  0.635539  0.191867  0.020774"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results11 =pd.DataFrame({'准确率的均值':{'逻辑回归':ac1},'准确率的方差':{'逻辑回归':bc1},\n",
    "                   'AUC的均值':{'逻辑回归':ac2},'KS值的均值':{'逻辑回归':ac3},\n",
    "                   'kappa的均值':{'逻辑回归':ac4}})\n",
    "results11"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## ROC和KS曲线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_proba_1 = y_proba_lr_1\n",
    "fig,(axe1,axe2) = plt.subplots(1,2,sharey = True)\n",
    "for i in range(len(np.unique(y_test_1))):\n",
    "    fpr,tpr,thresholds = roc_curve(y_test_1,y_proba_1[:,i],pos_label = i)\n",
    "axe1.plot(fpr,tpr)\n",
    "axe1.plot([0,1],[0,1])\n",
    "axe1.set_title('ROC')\n",
    "axe2.plot(1 - thresholds,tpr,label = 'TPR')\n",
    "axe2.plot(1 - thresholds,fpr,label = 'FPR')\n",
    "plt.xlim(0,)\n",
    "axe2.set_title('KS')\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_proba_2= y_proba_lr_2\n",
    "fig,(axe1,axe2) = plt.subplots(1,2,sharey = True)\n",
    "for i in range(len(np.unique(y_test_2))):\n",
    "    fpr,tpr,thresholds = roc_curve(y_test_2,y_proba_2[:,i],pos_label = i)\n",
    "axe1.plot(fpr,tpr)\n",
    "axe1.plot([0,1],[0,1])\n",
    "axe1.set_title('ROC')\n",
    "axe2.plot(1 - thresholds,tpr,label = 'TPR')\n",
    "axe2.plot(1 - thresholds,fpr,label = 'FPR')\n",
    "plt.xlim(0,)\n",
    "axe2.set_title('KS')\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_proba_3= y_proba_lr_3\n",
    "fig,(axe1,axe2) = plt.subplots(1,2,sharey = True)\n",
    "for i in range(len(np.unique(y_test_3))):\n",
    "    fpr,tpr,thresholds = roc_curve(y_test_3,y_proba_3[:,i],pos_label = i)\n",
    "axe1.plot(fpr,tpr)\n",
    "axe1.plot([0,1],[0,1])\n",
    "axe1.set_title('ROC')\n",
    "axe2.plot(1 - thresholds,tpr,label = 'TPR')\n",
    "axe2.plot(1 - thresholds,fpr,label = 'FPR')\n",
    "plt.xlim(0,)\n",
    "axe2.set_title('KS')\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABAqUlEQVR4nO3deXhU1fnA8e9JQgIJIWwJWwg7hH3fVBAXBEVFBfy5UFBxwbq11lZba63a2lprq9atqKBoKwqoIIKCUEH2sC8hJCEJZCP7vmfm/P64iYaQZQgzd7b38zw8w8y9c89LmJt3zj3nvkdprRFCCCFcjY+zAxBCCCEaIglKCCGES5IEJYQQwiVJghJCCOGSJEEJIYRwSZKghBBCuCRJUEIIIVySJCg3opRKUkqVKaWKlVJnlVIfKKXa1tl+iVJqi1KqSClVoJT6Sik1pN4x2imlXlVKnak5TnzN887m/4uEMFfNOXR1nee3KaXylFKXK6UWKaVias6fDKXU10qpYGfG6+0kQbmfG7TWbYFRwGjgtwBKqcnARmAN0B3oAxwGdiil+tbs4w9sBoYCM4F2wCVADjDB1H+FEE6mlFoIvAnMqnnpReB2rXUwMBj4zFmxCYOSShLuQymVBNyrtf6u5vnfgKFa61lKqR+Ao1rrn9d7zwYgS2u9QCl1L/BnoJ/Wutjk8IVwutpzCOiLkZBmaq33KaWeAC7TWt/kxPBEPdKDclNKqXDgWiBeKRWI0RNa2cCunwHTa/5+NfCNJCfh5R4EXgCu0lrvq3ltDzBDKfWcUupSpVSA88ITtSRBuZ8vlVJFQDKQCTwLdMT4v0xvYP90oHZ8qVMj+wjhTaYDu4GjtS9orX8AbgHGAF8DOUqpfyilfJ0TogBJUO7opppr5NOASIzkkwdYgW4N7N8NyK75e04j+wjhTRYDA4H3lFKq9kWt9Qat9Q0YX/hmA3dhXA4UTiIJyk1prbcCHwB/11qXALuAeQ3seivGxAiA7zAuYwSZEqQQrikTuAqYArxVf6PW2qq13gxsAYaZHJuoQxKUe3sVmK6UGgU8BSxUSj2qlApWSnVQSv0JmAw8V7P/RxiXBlcrpSKVUj5KqU5Kqd8ppa5zxj9ACGfQWqcBVwIzlVL/VErNrply3kEZJgCXY1wKFE4iCcqNaa2zgOXAM1rr7cAMjOvo6cBpjGnol2mt42r2r8CYKBEDbAIKgb0Ylwn3mP4PEMKJtNbJGElqLvAL4D4gDuO8+Bh4WWv9H6cFKGSauRBCCNckPSghhBAuSRKUEEIIlyQJSgghhEuSBCWEEMIl+Tmr4c6dO+vevXs7q3khLtr+/fuztdahZrQl54twdy05X5yWoHr37s2+ffua31EIF6WUOm1WW3K+CHfXkvNFLvEJIYRwSZKghBBCuCRJUEIIIVySJCghhBAuSRKUEEIIlyQJSgghhEtqNkEppZYqpTKVUsca2a6UUq8rpeKVUkeUUmPsH6YQQghvY0sP6gNgZhPbrwUG1Py5H3j74sMSwgVIpX8hnKrZG3W11tuUUr2b2GU2sFwb63bsVkq1V0p101qn2ytIIcxSWlnNnsRcMnd9yuCzXzDisdXQpoOzwxLCNInZJZw8W8iprBLy0xPom7eTsPIE2ldlEGAtxzL5EUZeMdeUWOxRSaIHxiqttVJqXjsvQSml7sfoZREREWGHpoW4eBar5suDqXx+MIX9p/PoUp3G1/5/5mxAL8poTRsnxSXnizBLUXkVr2+OY92RdNILygkljz+1WsZ03/34oCmlDRl+3ahQrbFYq02Lyx4JSjXwWoPXRrTWS4AlAOPGjZPrJ8KpErNLeH97Aj/EZXM6p5TObf2ZN7Izv0n5I4Hlrem/eBW0cVZ6kvNFmOPLg6m8sukkybllTOjTkV8Mr2DOsWfwrS5FXfIEjLiNwE796KMa+lXvWPZIUClAzzrPw4E0OxxXCIdIzS/j31tPsXyXURqsV6dAXrttFNeP6I7vuscgPwbuWAntezZzJCHc2+ub4/jHplgGhLXl0/snMbFdHiydD/5tYNE3EDrIqfHZI0GtBR5WSq0AJgIFMv4kXFFafhkvfRPDuiPpWLVm7thwHr1yABGdAo0dDq+AAx/CZY/DwGucG6wQDvavmuQ0a3g3Xr1tFK0qC+HdeYCGBWuhc39nh9h8glJKfQJMAzorpVKAZ4FWAFrrd4D1wHVAPFAK3O2oYIVoieziCp77Kpp1R9LQGu6cGMGiy/rQN7TtTztlxsC6X0KvS+GKp50XrBAmWHMolVc2xXLDyO7889aR+Pn6wIYnIe80LPzKJZIT2DaL7/ZmtmvgIbtFJISdZBaV8/Gu0yzbmURReTV3Tozgvil96d056NwdK0vgswXgHwRz3gdfp61CI4TDJeeW8uza44wMD+HluSOM5JS0HY6sgMufhN6XOjvEH8mZKDxOZbWV1zfH8d72BMqrrIzv3YFnrh/CiPD25++stdFzyo6FBV9Cu25mhyuEaaxWzcP/PUC1RfPKraNo3crXOAc2PQvtesBlv3R2iOeQBCU8htaaPYm5/GLFIc4WljN1YChPXDOw4cRU68CHcORT47Je32lmhSqEU2yMzuBwSgF/vWU4/cNqLnEn/QCp++D6f0Ir581abYgkKOERknNLeeSTgxxKzqdNK19euGkY8ydGoJqaGpt+BNb/BvpdCVOeMC9YIZzAYtW8svEkPdq34ZYx4T9t2PkvCAqFkXc4L7hGSIISbk1rzfJdp3npmxjKqiz84uoB3H1pH0LatGr6jeUFsHIhBHaCW94FH6mbLDzb5hMZxGUW8/LcEfj71XzeM2MgbqNxBaFVa+cG2ABJUMJtZRVVMOftnZzJLWVo93a8NGcEw3qENP9GrWHNw8aMpbu+hqDOjg9WCCd774dEuoe05qbRPX56cc874Ncaxi1yXmBNkAQl3I7Fqlm2I5G/bzxJlUXzwNS+PDkzEh8fG+903/NvOLEWpr8AvSY7NlghXMDxtAL2JuXy6xmDaOVb03uqLIWjq2DITRDUyanxNUYSlHArheVVPLB8P7sScpgyoDNPzoy0rddUK2UfbPw9DLwWLnnEcYEK4UJW7kvB38+HOybUqekYsw4qi2D0fOcF1gxJUMJtxGYUcfeyKFLzy7h/al9+e21k05Mg6ivNhZV3GVPJb34bnFBbTAizWa2ar4+mc/nAUDoE+f+04ehKCOlp3JzuoiRBCbewen8Kv/viKH4+iv/cO5FL+1/guJHVCl8+CEVnYdG3soSG8BoHk/PJKqrg2mFdf3qxohgStsL4RS49QUgSlHBpuSWV/GbVEb47kcGI8BBenjuSQV2DL/xAO1+D2G/g2pehx1j7ByqEi/riYAqtfBVXD+ny04unNoOlAgZd57zAbCAJSris+Mxibn93NznFFSyY3IvfXTfYuPP9QiXtgM0vwNCbYcJ99g9UCBdVWW3l8wOp3DiyB+1a17n1Ima9cRUhwrUnCUmCEi7pTE4p93wQRWFZFcvunsDlA0NbdqDiLFh1D3ToDTe8LuNOwqucSC+ktNLCtEF1zh9LNcR9CwNmuHzdSdeOTngdrTWf7Uvmj2ujqbJYWXrXeKa2NDlZLfD5vVCeD/NXQet2do1VCFe3NTYLpWBin44/vXhmF5TlQaRrX94DSVDChVRbrDy24hBfH00nsmswb88fS5/6lccvxNa/QcL3cOO/oOtwu8UphLvYFJ3B6J7tCWtXp0rEyfXgGwD9rnJeYDaSBCVcQkFpFfcujyIqKY+Fk3vxzPVDjGUAWurUFtj6klFfbPTP7BeoEG4ivaCMo6kFPDkz8twNidsgYhIEtG34jS7EdecXCq+RV1LJ3R/s5cCZfP5yy3Cemz3s4pJTYRqsvg9CI2HW32XcSXilXadyAM4dfyrNhYxj0PsyJ0V1YaQHJZwqvaCMBe/vJS6zmFfmjWTO2PDm39QUS7UxKaKqDG790FiEUAgv9P3JLNoHtmJglzq3ZaREGY8uPnuvliQo4TTRaYXc8d5uSissvDN/LDPr3kjYUlueNwaBb3kPQgdd/PGEcENWq+aHuCyujAzDt26NyjO7Qfm6zb2AkqCEU2yKzuCBj/bh5+vDx/dOZELdWUYtdXID7HgNxt0DI+Zd/PGEcFPR6YXklVZxSb96FVeS90K3EeAf6JzALpCMQQnTfX8yk8Uf7yeiYyAbHptin+SUdxq+WAxdR8CMv1z88YRwY9visgCYMqBOgrJUQep+6DnJSVFdOOlBCVN9dTiNX3x6iN6dAvn0gcl0bhtw8QetrjSKwGqrMe7kgguvCWGmqMRc+oe1pUvd6eVnj0B1GURMdF5gF0gSlDDNi+tPsGRbAn06B9kvOQFsegbSDsCtH0HHvvY5phBuqtpiZf/pPGYMrTeme2aP8dhTEpQQ51i6PZEl2xKYOjCUJT8b27Kaeg05/oWxKuikn8OQG+1zTCHcWGJ2CYXl1UzuV28RwuQ9EBIB7bo7J7AWkAQlHEprzd83nuTN/51iQu+OvLtgLAF+dkpOOadgzSMQPh6ufs4+xxTCzR04kwfA4G51SntpbSQoN7n/qZYkKOEwVRYrL6yLZvmu01w3vCuvzBtlv+RUVQafLTSKXc5dBn7+zb9HCC+wJyGXzm39iay7LE1hGhSlG1/m3IgkKOEQZZUW7l0exY74HK4f0Y3Xbht97v0YF2vDk5BxFO5YCe172u+4Qri5g8n5jI7ocO5q0+mHjMfuY5wSU0vJNHNhd5XVVh74eD874nP43XWRvHHHGPsmp8Mr4MCHcNnjMPAa+x1XCDdXWF5FYnYJo3q2P3dD2kHjBt0uQ50SV0tJD0rYVVZRBYs/3s/+03k8dW0k90/tZ98GMk/Aul9Cr8vgiqfte2wh3NzBM/kADO8Rcu6GtENGbUo3uUG3liQoYTfH0wpY8P5e8suq+P2swdw7xc5TviuKjXEn/yCY+77LL7YmhNmiEnPx9VGM693hpxe1NnpQA2c6L7AWkjNc2MX2uGwWLttLoL8vn9w3yT7VIerS2ug5ZcfCgjUQbIe6fUJ4mEPJ+QzqEkygf51f7QXJUJoN3Uc5La6WkjEocdGW7Uhk/vt76BIcwJcPXWr/5ATGmNPRz+CK30Hfy+1/fCHcnNWqOZpawIjwepf30o8Yj91GmR7TxZIelGixymorv1p5mK8OpzEmoj3v/GwsYcEOKDOUfhjW/wb6XQlTnrD/8YXwALGZRRSUVTGud70viGePgPKBLkOcE9hFkAQlWqSwvIp7lkWx73Qec8eG8+LNw/H3c0CHvLzAGHcK7AS3vAs+0ukXoiF7E3MBmFA/QaVEQehgt1wbzaazXSk1Uyl1UikVr5R6qoHtIUqpr5RSh5VSx5VSd9s/VOEqTueUMPOf29h3Oo8nrhnI3+eNdExy0hrWPAz5Z2DeMgjq3Px7hPBSO+Kz6R7SmohOdWbqaW3M4At3j/Wf6mu2B6WU8gXeBKYDKUCUUmqt1jq6zm4PAdFa6xuUUqHASaXUf7TWlQ6JWjjN/05m8ptVR6iyWFl293iuGBTmuMb2/BtOrIXpL0CE+ywRIITZtNbsP53H1IGh524oSoeyXOgy3DmBXSRbvvZOAOK11gk1CWcFMLvePhoIVsaty22BXKDarpEKp/vmWDp3L4vC39eHZXc5ODml7IONv4dB18EljziuHSE8wKmsYrKLKxlf//JexnHjsesw84OyA1vGoHoAyXWepwD167W/AawF0oBg4P+01tb6B1JK3Q/cDxAREdGSeIWTbInJ4NEVh4jsGsznP7/k3Gms9laaa6zv1K4b3PQWKDtWoXAjcr4IWx1PKwQ4v4JExjHjMcz9JkiAbT2ohn476HrPZwCHgO7AKOANpVS7evugtV6itR6ntR4XGhpaf7NwUd9FZ3DPB/sICw5g+aIJjk1OVit88QAUZ8C8D6FNh+bf46HkfBG2Op5WiL+vD/1C2567IeM4hPSENu2dEtfFsiVBpQB1q3GGY/SU6rob+Fwb4oFEINI+IQpn2n86l/s/2keP9m347IHJjplGXtfO1yBuI8x4EXq4V2FLIZzlWGoBkd2Cz5+slHHc7erv1WVLgooCBiil+iil/IHbMC7n1XUGuApAKdUFGAQk2DNQYb7s4goe+OgAndoG8OkDk+jevo1jG0zaAZtfgKE3w/h7HduWEB7k5NkiBnetd9GqusKovOLGCarZazVa62ql1MPAt4AvsFRrfVwptbhm+zvAC8AHSqmjGJcEn9RaZzswbuFgldVWFn+0n/zSSlY9eAnhHRxcZLI4E1bdAx37wI3/8tpxJyEuVEFpFTkllfQJrXefU3YsWKs9O0EBaK3XA+vrvfZOnb+nAbLugYcoq7Rw25JdHE4p4PezBp8/8GpvVgusvhfK82H+aggIbvYtQghDbGYRwPnjT2drJ0h4eIIS3kNrzf0f7eNwSgFPzoxk0WV9HN/o1r9B4la48Q23nQ4rhLMcSSkAYOR5NfgOQ6tA6DzACVHZhyQocY73fkjkh7hsHrqiHw9Os/NaTg05tQW2vgQj74DR8x3fnhAeJi6jiI5B/oS1qzeBKe0gdB0OPr7OCcwOpLCZ+NGBM3m8/O1JxkS054lrBjm+wcI0WH2fsZDarL/LuJMQLRCfWUz/+pf3rFbjHqhuI50TlJ1IghIARKcVsuD9vYQGB/D67aNRjk4WlipjUkRVGdy63C0LWQrhbFprYjOK6BdWL0EVnIHKYre9QbeWXOIT7IjP5sGP9xPo78uK+yc5fsYewJYX4MwuuOU9CB3o+PaE8EDJuWUUllczrEe9Kea1EyS6uPeYrvSgvFxCVjGLPoyifaA//71vIj07mpCcTm6AHa/BuHtgxDzHtyeEhzqSmg/AyPD2526orcHnhmtA1SU9KC9WUW3hqdVHAfj0gUl0C3HwjbgAeafhi8XGtfEZf3F8e0J4sNM5pQD06VzvEnnWCWjfy+0vnUsPyos98t+D7E3K5TczIs1JTtUVRhFYrY06e60cXDZJCA8Xm1FEt5DWBAXU62tkxkDYYOcEZUeSoLzUhzuT2BidwcLJvbjHjHudADY+A2kH4KY3jYoRQoiLEpNexOBu9cafLFWQE2/MjnVzkqC80DfH0nl27XHG9urA07NMukZ9/AvY+2+Y9BAMvsGcNoXwYBXVFk5lFTO4W73KK3mnwVoFoSbcKuJgkqC8zLHUAn696gj9QoP48J4Jjlmqvb6cU7DmEQgfD1f/0fHtCeEF4jOLqbZqBtUvEpsdazx2ct8KErUkQXmRnOIKFi7di49SLLtrAm3rX7d2hKoy+GwB+PrB3GXg5+/4NoXwAjHpRg2+IfV7UDlxxmPn/iZHZH8yi89LlFZWs2DpXgrLq/j0gclEdDJhOjnAht8Yd7TfuQra92x+fyGETeIyi2nlq+jVqX4V8zgICvWIxT4lQXkBrTVPrDzM8bRCXv2/UYyJMOmDe+gTOLAcpvwKBkw3p00hvERsRhF9O7ellW+9C2E58R5xeQ/kEp/Hs1g1z649zvqjZ1l8eT9uGt3DnIYzT8DXj0Ovy2Da78xpUwgvobXmRHohg7o2sDRNdqxHXN4DSVAe78X1J1i+6zQ3jerOr64xqaRQRTF8thD828Lc943xJyGE3WQVVZBeUM7I+mu1leZCaQ509ozyYfKbw4P9Y1Ms729PZM6YcF651aSqxlrDul8YA7UL1kBwV3PaFcKLxGcVAzCwS70isTnxxqOHXOKTBOWBtNa8sO4ES3ck0j2kNX+6ycSCkfs/gKMr4YrfQ5+p5rUrhBfZn5QHwJD6N+lm187gkwQlXNQHO5NYuiOR28b35IWbhp0/iOoo6Ydhw5PQ7ypjYoQQwiH2nc5jUJdgOrUNOHdDdiz4tDLq8HkAGYPyMBuOpvP8umgm9unIn8xMTuUFxrhTYCe4ZQn4yEdLCEfQWnM8rYBhPULO35gTDx37esy4r2f8KwQAx9MKeHTFQQZ1CebdhePwMys5aQ1rHoKCZLhrPQR1NqddIbxQRmEF2cWVjOzZQILKjvOYy3sgPSiPkVdSyaIP9tG6lS/LF02gXetW5jW+5x048ZVRxihionntCuGFEmomSJy3zLulGnIToJNnTDEH6UF5jOe+Os7ZwnI+vX8SYcEmLmORHAUbfw+DZsHkh81rVwgvlZBdAkCf0HoVJPJrisRKD0q4ki0xGXx5KI3bJ/RkYt9O5jVcmgur7oZ23Y0lNJQyr20hvFRidgltWvnSpf4X0R9n8HnGPVAgPSi3tzshh5//5wB9Q4P4vVlLZwBYrfDFA1CcAfd86xF1v4RwByfSC+kXFoSPT70vhLVFYj3oEp/0oNzY8bQC7lu+j67tWrP8ngnnr6rpSDtehbiNMONF6DHGvHaF8GJaa46lFjAivP35G7NjjVm0gR1Nj8tRJEG5qYpqC498chAFLFkwjvAOJlUnB0jaDltegKG3wPh7zWtXCC+XXlBOYXk1gxuswec5RWJrSYJyQ1ar5rerj5KQVcLf5o5gYJcGPqyOUpwJqxYZ91rc+LqMOwlhoqSaCRL96s/gA+MSnwdNkAAZg3JLn0Sd4fODqcwY2oWZw7qZ17DVAqsXQXk+zF8NASYmRiEEsRnGIoV96yeosjwoyZIEJZzrUHI+L6yLZkR4CG/dOdbcxre+BInbYPab0NXE+n5CCABOpBfRMcifLu3qlzjyrCKxteQSnxvJLCzn5x/vJ8DPlzduH4Nv/Vk8jhS/Gbb+DUbdCaPnm9euEOJHsZlFDOzSFlX/0nqOZxWJrSUJyk2UV1m4b/k+sksqeW/hOPOWbAcoTIPP74OwwXDd381rVwjxI601cRnFDGpozDk7Dnz8oENv0+NyJElQbuL5ddEcTingpTnDGd/bxGmklipYdQ9UlcO8D8HfxMQohPhRWkE5xRXVDGgoQeXEQYc+4GtiiTMTyBiUG3hjSxz/3XOGn03qxc2jw81tfPPzcGYXzHkfQj3nDnUh3E3sWWOCRMPLvHveDD6wsQellJqplDqplIpXSj3VyD7TlFKHlFLHlVJb7Rum9zqTU8rrm+PpGOTPH24wsVIEQMx62Pk6jFsEw+ea27YQ4hy1M/gGhtVLUFaLxxWJrdVsD0op5Qu8CUwHUoAopdRarXV0nX3aA28BM7XWZ5RSYQ6K16uUVFSz6MMofHzgswcmmbe2E0DeafhyMXQbaVSLEEI41cmzRXRpF0BIYL3LePmnwVLpUTX4atnyG28CEK+1TtBaVwIrgNn19rkD+FxrfQZAa51p3zC9j9Wq+eWnh4jLLObtO8fSv/63JkeqroCVd4HGGHdqZWJ1dCFEg6LTC4ns2u78DbVTzL30El8PILnO85Sa1+oaCHRQSn2vlNqvlFrQ0IGUUvcrpfYppfZlZWW1LGIvsXRHIhujM3jimoFcEWlyh3Tj7yHtgFGhvGMfc9sWP5LzRdQqr7IQl1nMsB4NJahY49HD7oEC2xJUQzfb6HrP/YCxwCxgBvCMUuq8/qbWeonWepzWelxoaOgFB+stYs4W8tcNMUzq25GHrjD5uvKxz2HvEmNtp8E3mNu2OIecL6LWybNFWKyaYd0bWuY9zlhNIMjEpXZMYsssvhSgZ53n4UBaA/tka61LgBKl1DZgJBBrlyi9zHNro/HxUbz6f6PPvyHPkbLjYe2jED7BWB1XCOES4jONVXQbnsEX75HjT2BbDyoKGKCU6qOU8gduA9bW22cNMEUp5aeUCgQmAifsG6p3+ObYWXYl5PDYVQPoGmLi2E9VGaxcaNxHMW+Zx91PIYQ7i80owt/Xh4iODdyHmB3rkZf3wIYelNa6Win1MPAt4Ass1VofV0otrtn+jtb6hFLqG+AIYAXe01ofc2Tgnig+s4jfrDpMZNdgFl1m8tjP+l9DxjG4cxWEmHyvlRCiScfSChjUNRi/+jN5ywugJBM6e94Uc7DxRl2t9Xpgfb3X3qn3/GXgZfuF5l2KK6q5a1kUSineuGMMrVv5mtf4of/CwY9gyhMwYLp57QohmmW1ao4kF3DjqO7nb8zxzCKxtaSShIt4+/t4UvLKWH7PBPqHNbDWi6NkRMO6x6H3FJj2W/PaFULYJCWvjKKKaob1aGCCRHZNkdjQQeYGZRKpxecCTmUV894Picwa3o2pA02crVVRbIw7BQTDnPfAV76vCOFqTpwtBCCywQkSsR5ZJLaW/EZyMq01z645jsWqeXJmpJkNw7pfGJcIFqyB4K7mtS2EsNmJ9EKUamwGX6yxurWHTmqSHpSTfbYvme3x2fxm5iBzl9DYvwyOroRpv4M+U81rVwhxQaLTCundKYhA/wb6E9lxHjvFHCRBOdXS7Yk89flRxvfuwN2XmjhrL+0QbHgS+l0FU35lXrtCiAuitebAmXxG92x//kZLtccWia0lCcpJDpzJ44Wvo7mkXyfeWzjevEKw5QXGuFNgZ7jlXfCRj4AQrio1v4zs4gpGR7Q/f6MHF4mtJWNQTpBTXMEj/z1IaNsA3pk/luDWJl0/1hrWPAQFKXDXeo8sjSKEJzmUnA/AqJ4dzt+YFWM8eugMPpAEZTqtNb9aeZiMwnI+WzzZvOQEsPttOPEVXPMniJhoXrtCiBY5nJyPv58Pkd0amSABHt2Dkus7JvtwZxLfn8ziV9cMYkxEA9+KHCU5CjY9A4NmGYVghRAu71ByPsO6t2t4CCA7Dtp2gdYNVDj3EJKgTLQtNos/rz/B+N4deGBqX/MaLs011ndq18NYQsPMArRCiBapslg5mlrAyIYmSABknfToy3sgCco0+0/ncu/yfYQFt+aNO8bg42NSkrBa4YsHjHpd8z4wyvILIVzevqQ8yqusTOzT8fyNWhuX+Dp7doKSMSgTZBSWc//y/XRt15pViycT1s7EKuU7XoW4jXDd36HHGPPaFUJclNoJEpP6NjCZqegsVBRKD0pcvOe/iqawvIp3F4wzNzklbYctL8CwOTD+XvPaFUJctKOp+UR0DKR9oP/5G7NPGo8ePEECJEE53A9xWXx9NJ17Lu3TcKkSRynOhFX3GGVQbnhNxp2EcDNHUgoY3lCBWDDGn0B6UKLlKqot/O6Lo3RpF8BjV5tYDt9qgdWLjJtyb11uFIMVQriNvJJKUvLKGB7eRIJqHWLM4vNgMgblQC9+fYLk3DLemT+m4TpajrL1JUjcBrPfhC5DzWtXCGEXR1MLABjRWA+qdoKEh18ZkR6UgxxLLeDDXae5aVR3Zg7rZl7D8Zth699g1J0wer557Qoh7KY2QQ1t6hJfqGePP4EkKIeotlh5YuVhOgb58+wNJvZgClLh8/sgbLAxa08I4ZaOpOTTu1MgIW0aqDRTmluzzLtnjz+BJCiH+Hj3aWLOFvHsDUPoENTADBxHsFQZkyKqK4xxJ38Tl+4QQtjVsdRChoe3b3hjbYkjD58gAZKg7O5sQTkvfXOSCb07cuPI7uY1vPl5SN5tzNjrbOKEDCGEXWUXV5CaX9b4+JOXzOADSVB29+4PCVRarLw8bwTKrAHMmPWw83UYtwiGzzWnTSGEQ9SOPw1raoKEXxsIiTAxKueQBGVHybmlfLgziWuGdKFXpyBzGs1Lgi8XQ7dRMPMv5rQphHCYoym1CaqRIrCZJ4yrJF6wlpvn/wtNYrFqHl1xEIvWPHylSStcVlcYRWA1Rp09vwBz2hVCOMzR1AL6hgY1vhRPVowxEcoLSIKyk1X7kzl4Jp/nbhzK0O6NdM3tbePvIe0g3PQWdDRxyXghhMMcTSlofPypohgKU71mnFkSlB0UV1TzysZYBnUJ5s6Jvcxp9NjnsHeJsbbT4OvNaVMI4VCZReWcLSxvYvypdoJEpHlBOZEkKDv4+7cnySyq4A83DMHXjGU0suNh7aMQPgGu/qPj2xNCmOJYbQWJxqaYZ54wHsOGmBOQk0mCukjlVRZWH0jhkn6duLR/Z8c3WFUGny0A31Ywb5nxKITwCEdSClAKhnZvYoKEX2vo0NvUuJxFavFdpDf/F09ReTUPXN7PnAbX/xoyj8OdqyEk3Jw2hRCmOJ5WSJ9OQQQFNPKrOSumZgafr7mBOYn0oC5CfGYRH+xIYnC3dkwdYELv6dB/4eBHMOUJGHC149sTQpjGatVEJeUytlcTq15nef4qunVJgmqhaouVh/97EKXg3/PHOv6m3IxoWPc49J4C037r2LaEEKY7mVFEfmkVExtaQRegvBAKzkCYd0yQAElQLbbkhwRizhbxhxuGEtHJwXXvKoqNcaeAYJjzPvjKlVkhPM3uhBwALunXSILKjDYeuww3KSLnk990LZBTXMGbW+IZ1qMdt4zu4djGtIZ1v4DcU7BgDQR79gJlQnirvYm5dA9pTff2bRre4exR49GL1niTHtQFslo1T64+Snm1lb/eMgIfR08r378Mjq6EK34HfaY6ti0hhFNYrZo9iblMaqz3BJBx3FhF14smR9mUoJRSM5VSJ5VS8Uqpp5rYb7xSyqKU8tiKpW9vPcV3JzJ47KoBjd9MZy9ph2DDk9DvKrjsV45tSwjhNCfOFpJbUsml/ZqYbJVxzLi85+Gr6NbVbIJSSvkCbwLXAkOA25VS590lVrPfS8C39g7SVaQXlPHad3FMHRjKI46ut1eWDysXQlAo3PKuVxSGFMJb7T+dB8CEPh0b3sFqNSZKedHlPbCtBzUBiNdaJ2itK4EVwOwG9nsEWA1k2jE+l/L8V9FUWa08OXOQY2ftaQ1rHoKCFJi7DIKa6PYLIdxeVFIeYcEBhHdoZPwpLxGqSqDrMHMDczJbElQPILnO85Sa136klOoB3Ay809SBlFL3K6X2KaX2ZWVlXWisTrU9LpsNx86y+PJ+ji8Gu/ttiFkHVz8HERMd25ZwWe58vgjbaa3Zm5jDpL6dGv/im3HMeOwiCaq+hn5iut7zV4EntdaWpg6ktV6itR6ntR4XGhpqY4jOV15l4bmvjtM9pLXjL+0lR8GmZ2DQLJj8kGPbEi7NXc8XcWHO5JaSUVjB+MYu7wGcPQbKx2uKxNayZZp5CtCzzvNwIK3ePuOAFTXZvzNwnVKqWmv9pT2CdLZ/boolLrOYt+4cQ6C/A2fml+Ya6zu162EsoeFFg6FCeKu9ibkATGwqQaUfMipI+Dv4nksXY8tv2yhggFKqD5AK3AbcUXcHrfWPixEppT4A1nlKckrNL2PpjkRmDe/GdcO7Oa4hqxU+vx9KMmHRRmjT3nFtCSFcxq6EHDoEtqJ/aNvGd0o/An0vNy8oF9FsgtJaVyulHsaYnecLLNVaH1dKLa7Z3uS4k7t7/qvjADxylYMv7e34J8RvglmvQPfRjm1LCOEStNZsi83isgGhjd9TWZAKxWeh+xhzg3MBNl2v0lqvB9bXe63BxKS1vuviw3INexJy+PZ4Bg9O60dk10bK39tD0nbY8icYNgfGLXJcO0IIlxKdXkh2cSVTmio2fWaX8dhzgjlBuRC5uaYR5VUWHv/sMD3at2HxVAcupVGUAavugY794IbXZNxJCC+y+YRxV84Vg8Ia3yl1v7EGVFfvqcFXS2rxNeKbY2dJzS9j2d3jCQl00KKAVgusXmRUKf7ZF0YxWCGE14hKyiWyazChwQGN75QSZVze88LFSaUH1YDSympe2XSSiI6BTB3gwOm93/8Vkn4wxp287A5xIbxdeZWFA6fzGB3RxPpP1ZXGBInwseYF5kIkQTVg2Y4kknPLePaGIfg6qhhs/Hew7WUYNR9G3+mYNoQQLuvgmXxKKi1cGdnE5b3M42CpgB6SoATGKrmvbY5jUt+OXDXYQUtbFKQaU8rDBsN1LzumDSGES/v+ZCZ+PoqJfZu4/yn1gPHohTP4QBLUef6xKRatNS/PHemYBixVsOpuqK6AW5d73Y13QgjD1tgsJvbtSLvWTYwtpR2AwE7QPsK8wFyIJKg6opJyWX/0LPdP7UvPjg5KHJufg+Q9cOPr0HmAY9oQQri0zKJyYs4WMbmx5d1rpR4wek9eOrtXElQNrTXPrjlOcIAfiy930LTymK9h579g/L3GPU9CCK+0pWZ6+ZWRTQwjVJZAVgz08M7LeyAJ6ke7EnKITi/kl9MHEtxUl7ul8pLgyweh2yiY8aL9jy+EcBtRSXl0buvP4G5N3FqSdgi01WvHn0AS1I/e2BJPu9Z+3DahZ/M7X6jqCqMIrAbmfQB+TdzzIITweIdT8hneI6TpdeWS9xiP4ePMCcoFSYLCqCa881QOD1zezzHVyr99GtIOws1vQ8c+ze8vhPBYGYXlxGcWM7G58aczu6HzQAhqogySh/P6BFVtsfKPTSfx9/Vh/sRe9m/g2GqIehcmPwyRs+x/fCGEW4lKMpbXaHR5dzBWN0jeDRGTTYrKNXl9glq+6zS7E3J5etZg+5c0yo6HtY9C+AS4+o/2PbYQwi1tPJ5BpyB/RvRoYmXu7JNQXgARk8wLzAV5dYIqKK3itc1xTOjdkQWT7dx7qiqDzxaArz/MW+aVdbSEEOeqtlj5/mQm0waF4efbxK/fM7uNx3Dvq2Bel1cXi73vo30UlFXxhxuGND1Y2RLrn4DMaLhzFYSE2/fYQgi3tDcxl8Lyaq6IbKbG5+kd0LYLdHLgSgpuwGt7UDtPZbM3MZebR/dgWFNd7ZY4+B84+DFMfQIGXG3fYwsh3NbG6Az8/XyaXl5Dazi9E3pd4rU36NbyygRVWW3l+a+iaR/Yiudm27mKeEY0fP0r6D0Fpv3WvscWQritaouVdUfSuCoyjKCAJi5e5SVBYSr0utS02FyVV17ie21zLDFni3jzjjFN18G6UBXFxrhTQDDMeR98fO13bCGEW9uVkEN2cSWzR/VoesekH4zHPlMdH5SL87oEdfJsEW99f4prhnRh1ohu9juw1vDVY5B7ChashWAHVUIXQrildYfTaRvgx7RBzYw/JW4zxp86DzQnMBfmdZf4/rrhBEH+fva/tLdvKRxbBVc8DX2m2PfYQgi3ZrFqNsdkcEVkGK1bNXFlRWsjQfWZ6vXjT+BlCWpnfDb/O5nFPZf1oVtIG/sdOO0QfPMU9L8aLnvcfscVQniEg2fyyC6uZPqQZq6sZMdCcYZc3qvhVQlq6Y4kQtq04kF7Visvy4eVCyEoFG5eAj5e9SMVQthg04kM/HxU85f3Yr81Hvtc7vig3IDX/DY9ebaI705kMG9sOG387TR5QWtY8xAUpBhFYIOaqa0lhPA6Wms2Hc9gUt9OzU/Kivkauo2EDg4ou+aGvCJBaa156ZsYAO6b2td+B979FsSsg+nPQ0/vvuNbCNGwIykFJGSXMGNY16Z3LM2FlL0w4BpzAnMDXpGg4jKL2RKTyf1T+9KlXWv7HDR5L2z6A0ReD5N+bp9jCiE8zucHUmjdyoebRnVvesf4zcb6TwNnmhOYG/CKBPXKxpP4+ijuvrS3fQ5YkmOs79SuB8x+U2bbCCEaVG2x8s3xs1zar3PzC6HGbYTATl69QGF9Hp+gDifn8+3xDO6+pLd9Zu5ZrfDFA1CSBbd+CG3aX/wxhRAeaVdCDhmFFdzYXO/JaoH476D/dJloVYfH36j7+uY4glv78djVA+xzwO3/gPhNMOsV6D7aPscUQnikTdEZtG7lw4yhzYw/nT0CZbnGrSriRx6dqpOyS9gck8n8Sb2a717bIvEH+N+fYdhcGLfo4o8nhPBYWms2n8jksv6hTd+cCxD3nfEo9z+dw6MT1DtbT6EU3DEh4uIPVpQBqxdBx35ww6sy7iSEaNKJ9CJS88uYPqSJyuW1Tq6HHmOlRFo9Hpug8ksr+fxgKreNj6Bnx8CLO5jVYiSn8kJj3Ckg2D5BCiE81jfH0lEKrohsJkEVpkHaAYicZU5gbsRjx6CWbk+kstrK7RN6XvzBvv+LUWF49lvQxc41/IQQHsdq1Xx+MJVL+nUiLLiZW1tqq0fI9PLzeGQPKq+kkqU7krh6cBgjwttf3MHivoNtL8Po+TD6TrvEJ4TwbNviskjJK+P/xtswvHBsNXTqD2FDHB+Ym/HIBPXpvmSKK6r55fSLLFdfkAKf3wdhQ+Hal+0TnBDC4609nEb7wFbMbG72Xn6ycXVmxP/JuHYDbEpQSqmZSqmTSql4pdRTDWy/Uyl1pObPTqXUSPuHahurVbNi7xlGhocwtPtFLOVuqYJV94Cl0hh38r/IcSwhhFeosljZfCKTKwaF4e/XzK/YoyuNx+HzHB+YG2o2QSmlfIE3gWuBIcDtSqn6fdFE4HKt9QjgBWCJvQO11bfHz5KUU8rtFztzb/NzkLwHbnwdOtvpHiohhMfbeSqHgrIqrhvezIKoWsORT6HnROjYx5zg3IwtPagJQLzWOkFrXQmsAGbX3UFrvVNrnVfzdDcQbt8wbbc5JpM2rXyZO/YiQoj5Gnb+C8bfC8Pm2C84IYTH++bYWYL8fZkyoHPTO549ClkxxuU90SBbElQPILnO85Sa1xqzCNjQ0Aal1P1KqX1KqX1ZWVm2R2mjaouVLTGZXNq/M36+LRxey02ELx6EbqNgxot2jU+IC+Ho80XYn9aa7fFZTOzbqfmbc498Cj6tYOjN5gTnhmz5Ld7QyJ1ucEelrsBIUE82tF1rvURrPU5rPS40tJmFu1pg7eE0cksquXl0U/mzCdUVRhFYMMad/ALsFpsQF8rR54uwvz2JuSTnljGruct7VgscXWUsrRHY0Zzg3JAt90GlAHVvJgoH0urvpJQaAbwHXKu1zrFPeLbTWvOPTbF0C2nNjKEtvBv726ch/RDc9l/o0Nue4QkhvMDHu08T3Nqv+fGnxG1QfBZG3GpOYG7Klh5UFDBAKdVHKeUP3AasrbuDUioC+Bz4mdY61v5hNu/AmXxS8sq4d0rfll3eO7Yaot6FyQ/LHd1CiAtWUlHNxugMZo/q3vyq3Uc+g4B2cnNuM5rtQWmtq5VSDwPfAr7AUq31caXU4prt7wB/ADoBbyljLn+11nqc48I+36r9yQT4+TB3TAsmR2THwdpHjdk0V//R7rEJITzf5phMKqut3DCimaU1ygvgxFoYehO0stMCqh7KplJHWuv1wPp6r71T5+/3AvfaNzTblVVaWHMojSsjwwgJvMCq5ZWl8NlC8PWHucvA1w5Vz4UQXmfd4TS6tAtgfO9mxpSi10BlMYy9x5zA3JhHVJL4NOoMpZUWFl7S+8LfvOHXkBkNt7wLIS2cXCGE8Gp5JZV8fzKLWcO74+PTTEWIw59Chz7QQ1bObY7bJyitNSuikukXGsSkvp0u7M0H/wMHP4apT8AAWShMCNEyK/cnU2mxNn//ZXY8nN4OY34mpY1s4PYJatepHGLOFl147ynjOHz9K+g9Bab91iGxCSE8n9aaT6OSGRPRniHd2zW984EPQfnCKCk8bQu3T1Cvbo4jpE0rbrqQe58qioxxp9btYM774NPMjBshhGjE3sRcTmWVcFtzlcurK+HwJzDoWghupoisANw8QcWcLWRvYi4PTutHO1uXdNcavnoMck8ZyUlWsBRCXIT3ticS5O/L9SObuffp5NdQkgVjFpgTmAdw6wS1ZGsCrXzVhVWO2LfUuOfpiqehzxTHBSeE8HinsorZEpPJlYO7EOjfzKToPf+G9hHQX8a7beW2Caq4opqvjqQxb1xPurSz8V6CtIPwzVPQfzpc9rhjAxRCeLyPdp3GR8HvZw1uese0g3BmF4y/T4YULoDbJqjtcdlUWTTXDWumW12rLN8YdwoKg1uWgI/b/tOFEC6grNLC6gMpXDusW/Nfkr9/CQJCYOxdpsTmKdz2t/T/apbVGN+nQ/M7aw1rHoLCVJi3TIozCiEu2ldH0igqr2b+pF5N75i0A2I3wKWPGhOzhM3cMkGVV1n48lAqV0aGEeBnQ3d591sQsw6mPw89Jzg+QCGEx/vP7tMMCGvL+N7NfEne8icI7gaTfm5OYB7ELRPUrlM5VFRbbZsccWYPbPoDRF4vHxAhhF0cPJPH4ZQC7pgYgWrqhtvkKDizEyY9CP6B5gXoIdwyQX22L5mOQf5c1tyKlSU5sOpuCAmH2W/KndtCCLt46/tTtGvt13TlCK1hywsQ2BnGLTIvOA/idgmqotrCttgsrooMa3rFSqsVvrjfuO9g3ofQpr1pMQohPNeprGI2RWew8JLeBDd1/2XC95C4Fab8CgLamhafJ7Gpmrkr2RabTUmlhRlDm7kTe/s/IP47mPUP6D7KlNiEEJ7vrxti8PfzaXpyRHUFrP+1sfCpzNxrMbdLUKv3pxDk78vlg5pYAjvxB/jfn2HYXBgnJe2FEPYRlZTLpugMHp8+sOmp5Tv/BTlxcOcqGXu6CG51iS82o4jvTmQwLTKMVo2tmluUAavugY794IZXZdxJCGEXBWVVPPrJQTq3DWi695SXBNtehsE3woDppsXnidyqB/XhziQsWvPMrCEN72C1wOpFRjHYBWsgINjcAIUQHuufm2JJLyhn1eLJdAzyb3gnrY1VEpQvzPyLuQF6ILdJUBarZt2RdK4d1pWuIY10rb//CyT9ADe9DV0aSWJCCHGBUvPL+Hj3aW6fEMG4plbMPbzCGPu+9mVj9rC4KG5ziW9rbCYFZVVcN7yR0kZx3xnd6tHzYdQd5gYnhPBob/4vHg38fFq/xncqyTZqfUZMhvH3mhabJ3ObBPVpVDJB/r5MH9LA8hgFKfD5fRA21PjmIoQQdnLgTB4r9p7h/8b3pGfHRiY8aA1fPw6VJXD9q1Lr007c4qdYUlHNt8czmDM2/PzSRpYqWHk3WCrh1uUyY0YIYTdllRYe/s8BOrcN4NfXDGp8xwMfQvQauPJpCIs0L0AP5xZjUF8fTQdgWkNTy7/7I6TshblLoXN/cwMTQni097cnkFZQzkeLJtChsYkRWSdhw1PQ9wq45DFzA/RwbtGDOpNTCsDYXvUGJ2O+hl1vGGusDJvjhMiEEJ4qs6icf29LYEKfjkwZ0Mh9l1XlsGqRceXm5nfk0p6duUUPasepbIb3CCGkTZ2yIrmJ8MWD0H00zPiz84ITQnicaouVR/57kCqLlRdvHtbwTlXl8Pm9kHEU7vgMgpupbiMumMun+6yiCg6eyeeKyLCfXqwqh5ULQQHzPgC/AGeFJ4TwMFpr/rohhj2Jufz5puH0D2vgfkpLNaz5OZz4Cmb8BQbOMD9QL+DyPahN0RkATB9cZ/bexqch/TDc9olR60oIIezAatU8vy6aD3Ymcdv4nsxpqFq5pQq+fBCOrYYrn4HJsoyPo7h8glq5P5k+nYMY1qNmJcqjqyDqPbjkEYi8zrnBCSE8htaaF9ef4IOdSdxzaR9+P2vw+TuVF8Cn8yFxG1z1LEx53PxAvYhLX+JLyCrm4Jl8rh/RzVgULDsOvnoMek40PhxCCGEnf90Qw3vbE7l9QgTPXD8YH596dTwLUmDpTDi9y6hWI8nJ4Vy6B7UlJhOAeWN7QmUpfLbAGG+auwx8m1iHRQghbKS1Zsm2BP69LYE5Y8L5803Dzl8lNzsePr4ZyvJh/mroe7lTYvU2Lp2gvjyUSmTXYCI6BcKXD0HmCePDEWLDUu9CCNGM8ioLD3y0n601i6C+NGf4uT0nrY3bWdY8BD5+sOBL6DHWafF6G5dNUIXlVRxLLeTx6QPh4Mdw6GOY+hvof5WzQxNCeICc4goeXXGQHfE5/HrGIBZf3g/fuskpOQo2PQNndhll1G77D3Ts47yAvZDLJqhdp3IAmBiUDl8/Ab2nwLSnnByVEMLdaa1ZfSCVv6w/QVF5NS/MHsrPJvc2NlqqjKnju96E1H0Q2NlYlXvMAhlWcAKXTVD/i8kkLKCKCVGPQ+t2MOd98PFt/o1CCNGAaouVTdEZvLP1FIdTChjVsz1/umkYw3qEGInp2Ofww98hO9ZY8HTmX2H0zyCgrbND91o2JSil1EzgNcAXeE9r/dd621XN9uuAUuAurfWBlgalteb7mEzeCP4AlXsKFn4FwQ1UMRdCiCaUVFSzNTaLTdEZ7IjPJrOogvAObXh57gjmDPTHJ+lb2LsF4jdDSSaEDjYmYQ2ZLV+IXUCzCUop5Qu8CUwHUoAopdRarXV0nd2uBQbU/JkIvF3z2CLxmcVcXbqOCVX/g6v+AL0va+mhhBBeoMpiJTm3lISsEhKyi0nIKiE6vZDotAICrSUMbpPHoq5lTBtSxgDfs/hE7Yd1R403t+kIfafByNuh/9VST8+F2NKDmgDEa60TAJRSK4DZQN0ENRtYrrXWwG6lVHulVDetdXpLgko8up1n/D6iJOJKgi79ZUsOIYRHKclIIOqft573utag0Oe/XvPY0LZz3myTc/ere8z6R1CNbWj8xR+P2dhWpTVWNFYrWLVGa37c22KxoqyVUF1JK6roSBXdqGK6TzUhPmW0CyjGT1caTafX/GndHrqNML789rsSuo6UpOSibElQPYDkOs9TOL931NA+PTA+Dj9SSt0P3A8QERHRaIPBqT+Qq0Locut78sERXqvu+TKimz/hhQcb3VejmtjW4NGbbb/pY/60rf5eP7ZX/16iRmOxJSaFUvx4f1LtnkoptL8/KtCfVv5BBLRuQ5s2bWgV0AZahxjJqG0YhPSEDr2gfS9o06HB2ITrsSVBNfQ/2egXpyb2QWu9BFgCMG7cuEY/q5MXvoil9Nf4BHawITwhPFP986Xbs/ucHJEQ5rKle5IC9KzzPBxIa8E+F8RXkpMQQng1WxJUFDBAKdVHKeUP3AasrbfPWmCBMkwCClo6/iSEEEKADZf4tNbVSqmHgW8xppkv1VofV0otrtn+DrAeY4p5PMY087sdF7IQQghvYNN9UFrr9RhJqO5r79T5uwYesm9oQgghvJlMkRNCCOGSJEEJIYRwSZKghBBCuCRJUEIIIVySJCghhBAuSWmb63HZuWGlsoDTTezSGcg2KZyWcPX4wPVjdPf4emmtQ80IRClVBJw0oy07cPX/17okVsdoKNYLPl+clqCao5Tap7Ue5+w4GuPq8YHrxyjx2c6VYmmOxOoY3hirXOITQgjhkiRBCSGEcEmunKCWODuAZrh6fOD6MUp8tnOlWJojsTqG18XqsmNQQgghvJsr96CEEEJ4MUlQQgghXJJTEpRSaqZS6qRSKl4p9VQD25VS6vWa7UeUUmNsfa9J8d1ZE9cRpdROpdTIOtuSlFJHlVKHlFIOWQLVhvimKaUKamI4pJT6g63vNSm+X9eJ7ZhSyqKU6lizzYyf31KlVKZS6lgj2037/Ln6uXCBsTr1vLjAWJ16jlxgrE49X+rFYu65o7U29Q/GmlKngL6AP3AYGFJvn+uADRhLyU8C9tj6XpPiuwToUPP3a2vjq3meBHR28s9vGrCuJe81I756+98AbDHr51fTxlRgDHCske2mfP5c/VxoQaxOOy9aEKvTzpGLac8Z50u99k09d5zRg5oAxGutE7TWlcAKYHa9fWYDy7VhN9BeKdXNxvc6PD6t9U6tdV7N090YS9yb5WJ+Bi7x86vnduATO8fQJK31NiC3iV3M+vy5+rlwQbE6+byoy9XPkYtpz/TzpS6zzx1nJKgeQHKd5yk1r9myjy3vNSO+uhZhfGOopYGNSqn9Sqn77RzbhcQ3WSl1WCm1QSk19ALfa0Z8KKUCgZnA6jovO/rnZwuzPn+ufi7YEkdjzD4v6nL1c6QuTzhf6rLr59WmFXXtTDXwWv257o3tY8t7L5bNbSilrsA4ES+r8/KlWus0pVQYsEkpFVPzrcPM+A5g1L0qVkpdB3wJDLDxvRfrQtq4Adihta77jczRPz9bmPX5c/VzwZY4zt/ROefFOSE08JornSN1ecL5UpddP6/O6EGlAD3rPA8H0mzcx5b3mhEfSqkRwHvAbK11Tu3rWuu0msdM4AuMrq2p8WmtC7XWxTV/Xw+0Ukp1tuW9ZsRXx23Uu1xhws/PFmZ9/lz9XLAljnM48by4oFidfI5cUKx1uOr5Upd9P69mDa7VGUTzAxKAPvw0WDa03j6zOHegba+t7zUpvgggHrik3utBQHCdv+8EZjohvq78dBP2BOBMzc/SJX5+NfuFYFzLDjLz51enrd40PtBryufP1c8Fdzov3OkcudBYa/Zz6vlSLxbTzh2H/kOa+AdeB8RizOp4uua1xcDimr8r4M2a7UeBcU291wnxvQfkAYdq/uyreb1vzQ/+MHDcifE9XNP+YYzB6kuaeq/Z8dU8vwtYUe99Zv38PgHSgSqMb3aLnPX5c/VzwZ3OC3c6Ry4k1prnTjtf6rVp6rkjpY6EEEK4JKkkIYQQwiVJghJCCOGSJEEJIYRwSZKghBBCuCRJUEIIIVySJCghhBAuSRKUEEIIl/T/C2kqXxShAZEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_proba_4= y_proba_lr_4\n",
    "fig,(axe1,axe2) = plt.subplots(1,2,sharey = True)\n",
    "for i in range(len(np.unique(y_test_4))):\n",
    "    fpr,tpr,thresholds = roc_curve(y_test_4,y_proba_4[:,i],pos_label = i)\n",
    "axe1.plot(fpr,tpr)\n",
    "axe1.plot([0,1],[0,1])\n",
    "axe1.set_title('ROC')\n",
    "axe2.plot(1 - thresholds,tpr,label = 'TPR')\n",
    "axe2.plot(1 - thresholds,fpr,label = 'FPR')\n",
    "plt.xlim(0,)\n",
    "axe2.set_title('KS')\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABKeklEQVR4nO3dd3zV1f348de5K3sQEggESAgEAgl7CTJEQMCFWm21rjrgZ6ttv63fqh1aa2t3rd9WW8W991ZkCIIgIkNWQgiEhJFB9h53nt8fiZpAEgLcnffz8QByP5/z+Zx3Lvfc92eczzlKa40QQgjhbwy+DkAIIYTojCQoIYQQfkkSlBBCCL8kCUoIIYRfkgQlhBDCL0mCEkII4ZckQQkhhPBLkqACiFLqsFKqWSnVoJQ6rpR6VikV2W79DKXUOqVUvVKqVin1gVJq9An7iFZKPayUOtq2n7y21/He/42E8K62NjS/3eurlVLVSqk5SqlblFL729pPqVLqI6VUlC/j7e0kQQWeS7TWkcB4YALwSwCl1HRgNfAeMBAYCuwGPldKpbaVsQBrgQxgERANzAAqgale/S2E8DGl1I3Ao8BFbYv+CFyjtY4CRgGv+yo20UrJSBKBQyl1GLhVa/1J2+u/Ahla64uUUhuBvVrrH52wzcdAudb6BqXUrcCDwDCtdYOXwxfC575uQ0AqrQlpkdZ6u1Lqf4GZWuvLfBieOIGcQQUopdQgYDGQp5QKp/VM6I1Oir4OLGj7eT6wUpKT6OV+CPwemKe13t627EtgoVLqd0qpc5VSIb4LT3xNElTgeVcpVQ8cA8qA3wJxtP5flnRSvgT4+v5S3y7KCNGbLAC2AHu/XqC13ghcAUwEPgIqlVIPKaWMvglRgCSoQHRZ2zXy84B0WpNPNeACBnRSfgBQ0fZzZRdlhOhNbgNGAE8qpdTXC7XWH2utL6H1gG8J8ANaLwcKH5EEFaC01huAZ4G/a60bgS+Aqzop+l1aO0YAfELrZYwIrwQphH8qA+YBs4D/nLhSa+3SWq8F1gGZXo5NtCMJKrA9DCxQSo0H7gFuVEr9RCkVpZTqo5T6AzAd+F1b+RdovTT4llIqXSllUEr1VUr9Sil1oS9+ASF8QWtdDJwPLFJK/VMptaSty3kf1WoqMIfWS4HCRyRBBTCtdTnwPHCv1noTsJDW6+glwBFau6HP1FofbCtvpbWjxH5gDVAHbKX1MuGXXv8FhPAhrfUxWpPUlcD/AEuBg7S2ixeBv2mtX/JZgEK6mQshhPBPcgYlhBDCL0mCEkII4ZckQQkhhPBLkqCEEEL4JZOvKo6Pj9cpKSm+ql6Is7Zjx44KrXWCN+qS9iIC3Zm0F58lqJSUFLZv337qgkL4KaXUEW/VJe1FBLozaS9yiU8IIYRfkgQlhBDCL0mCEkII4ZckQQkhhPBLkqCEEEL4JUlQQggh/NIpE5RS6mmlVJlSKquL9Uop9S+lVJ5Sao9SaqL7wxRCCNHb9OQM6llgUTfrFwNpbX+WAf89+7CE8D0Z6V8I3zrlg7pa68+UUindFFkCPK9bW/MWpVSsUmqA1rrEXUEK4S3l5WV88swD2PY24lCTufa/ywiNMPs6LCG8wmp38sXGXIr3HcVSbiOqsYFaVUuj0UqLwYFTuRg1fCjzbups8m73c8dIEkm0ztL6tcK2ZSclKKXUMlrPshgyZIgbqhbi7DicLl7e+RkFr/ybsXsPMrTYzghzAtsm3Y3RcRybrZbQiHifxCbtRXiD1ppVnxXQtOoAGY5QhhuMDMTE5+ZDZEWUgwKTNhDhsmDUCqfN5rXY3JGgVCfLOr02orVeDiwHmDx5slw/ET5zqKKCP738F8ZuXsmYww6m1EBtOBxMN1Od+EMMpjCuvu9aovqE+ixGaS/C0/Yfq+GLR7YxwxVChDGCYtXEbsd+9odV4FKKoa5GzrviewwZPwWlOvuq9yx3JKhCYHC714OAYjfsVwi3Kyhv4C+v/ZHRn7/PnTudADRGu1BXpjHtll/R/HkfyjaVcNH/G0tUnO+SkxCelltUS/b/bWGBKYJyUwO5M1tIKs0nJ78Kg9PF9YvPY9ishT6N0R0J6n3gDqXUq8A0oFbuPwl/02Rz8O9XXmXA23/ljgN2lNa0jHCScd1VWC66EyL6krulhH2bcpi4KJmUMb65rCeEN9Q02dj+yDrmmOLZH1bK6P+ZQWphCf/euAVMJm64/GKSp5zr6zBPnaCUUq8A5wHxSqlC4LeAGUBr/RiwArgQyAOagJs8FawQp6vF7uShd/9JyovPc3GuHQNQOi6E6T+6m5BZ3wNDa0fWquJG1r+cy8C0WKZdMtS3QQvhQVprXv7nB1yq+3HIVM95v7oMk9nEf+97AEdsf+YkxfhFcoKe9eK75hTrNXC72yISwg0arA6ef+MNLCv/wgV7rURYYd84M1NuWcZ583/0TWICsFudrFy+F3OIkQtuycBglOfXRfD6x4truLw2gQplY/JdczCZTex+7hFK+yQSV13Cefff7+sQv+Gz+aCE8JSt2QXk/eEaZuytJcQB5UkGhvzPHXznkh+eVFZrzfqX91Nd2sSlPx1PRGyIDyIWwjtyisuZm6UwKIj+fgoR0RG47HZW7s1HhYRy1a3LfNIZoiuSoETQKKlu4sN//4SM9z9nQgPkDTWQevvtzL74R11us29TMQe+LGXqJUMZnB7nxWiF8L5Vz33ClWoQuUPszBs3DIDP/3ofzZHRpDaXM2DMJB9H2JEkKBHwtNa89PK7DFr+G2aWurCaIevKdC67/zXMJkuX25Ufq2fjawcZPDqOyYtTvBewED7wZV4x86sTaVAOzrtlNgDa6eSLigZUhIEr7rrPxxGeTBKUCGgHS2rY+atrGbP9ECa74vPZUXzvD28wvl9yt9tZmx2sWp5FaKSZBTeNRhn857KGEJ6w8Y31XG0YTP4IF+khrV/9ux//K00xfRlqqyGyb38fR3gyuRssAlJdi527/u/fVC2ZwZgv8imMU2Tft5hbl28l6hTJSWvNp8/nUFfZwgW3ZhAW1fVZlhDB4FBpHXOqE2jUTqZfO+Ob5ZtyDoPLxcX/7ye+C64bcgYlAk5pdSMf//w7fH/bEUxO2Dojkpl/e4lhfUf0aPs9nxZyaGc5M64YzsDhsZ4NVgg/8P7b67nK0IeDA1sYGdI6tmTdnm1UxiYQ01hF3+RUH0fYOUlQIqCsWLsW159+wrRCF/tSFGk/uZ0bL+z5Uw7HC2rZ/FYeKWPjGb9g8Kk3ECIIpB7VOLVm4jVTv1m2/vkn0ZEDmDQm3YeRdU8SlAgIWmtefvTPDH3+OfrUKQ5Mj2XRf1cTERrV4320NNpZ9UQWEbEhzLtxlF91pxXCU/YcK2G0M5Zj5maSE2KA1vaU67RgsFmZce3/83GEXZN7UMLv7T1WzaN3XETmY88T2qIouHMhS5754rSSk3Zp1j67j6ZaGwuXZsoUGqLX2PDhFsIMBmzDvh1bsnLTahqj+tDP3oDJ7L9tQRKU8Fs2h4u/vPw6+cvOZd7aAkrjwfLwL7lw6cOnva+da45yeG8l516ZRv+UaPcHK4Qf0lqTckTh0ppzrpj8zfIv3n0TDAbGTfGv555OJJf4hF/afayaPz3zR3763odEN8HhaX05/9/vExJ9+g/TFh+sZst7+Qyf1I8x5yV5IFoh/NO6rCOM0XEcMjcxJDbim+WHbEaUw8Hky7odyc7nJEEJv+Jwunj2ixze33QbP1tRQbgVwu5cwuJb/3xG+2uqs7HqyWyi40OZe1263HcSvcrW1dsZqfpjHv1tcrIWH6E2pi8xzbWYLf49tJckKOE3WuxOLnjkNSYd/gu/W2fD4tT0//XNxF971xntz+XSrHk6G2uTg0t+PA5LmHzcRe/RYneSUmZEo5m4cMI3y3e8+DjaZCFtQF8fRtcz0mKFX2iyOfjOM3/lpvUvcU6uC2e8Iu3RJ7CMm3nG+9z+UQGF+6uZe3068YN63qFCiGCwvaCS0a5YysxWBvf99vOfVVQBMYmcc/UtPoyuZyRBCZ9yuTSPf5bPqi0Ps/STTxhVCKZp8aQ/8g4q6swnDTy2r4ptKw6Tfk4io2YMcGPEQgSGdRu2c7MxiryBtm+WaZeLipBoQprq6Tuo+xFX/IEkKOEzRTXNLHt+O9aql/nxZ+sZVgIJSy8m/s6/ndV+G6qtrHkmm7gBEcy+ZqTcdxK9jtOlCT9SA0SROnvkN8srNq3AFh7J4KZKn8V2OqSbufCJlVnHmf+P9ejGv3PXJ+sZUQzRP73mrJOTy+li9VNZ2G0uFi7NxBxidFPEQgSOnJI6Jtj6YNUuBmd+e6a0Y9VKANLHjPFVaKdFEpTwund2FvLDl7YxyfJP7n/tAAOrYcC9tzPktrMf7n/Le/mU5NUy99qRxA2IOPUGQgShzQeOk0IEhWGNHUbqL6htAa2ZeMX3fRhdz8klPuE1VoeTX7yxh/d3F/FDx7+5+OVjaAOkPPwgkQuuOOv9F+ypYOfqo2TMTmLE1EQ3RCxEYCrenUuIoQ86peNI/VWhUYS2NBIWEemjyE6PJCjhFU6X5uev72bFniL+5vonoz4qoS5GMeHxJwkdN+PUOziFuopm1j67j/jBkcy8argbIhYicCVWNgF9SJn27Qj/lbs2Yw+PpL+11neBnSZJUMLjWuxObnh6K7sLjvMX618ZtbKGijjFpDdWEjpwyFnv3+lwseqJLLRLs2hZJiaz3HcSvVdpXQsj7ZHUOV2kjxj0zfJdH7wNhkiGp5x9m/MWuQclPMrudHHnG7s5dDiX3xy7lzEf11DTx8iwl18jyg3JCWDzW3mUHann/BtHEZMQ7pZ9ChGotheUM0RHUW5uwWD89iv+cHk1AGMv/Z6vQjttcgYlPKbF7uSW57aRe/grrqr5N5N3QNmIaKa/uhZLuHuugeftKGPPp4WMO38wwyb0c8s+hQhke3dmM05FYE3qeP5RZQjFaGshLilw5kGTBCU8YvvhKu56cw9lVfncWvwIC7dAS1oCs978BIPFPVOs15Q2se6FHPoPjWb6FcPcsk8hAl3YkRogguQJ316hcDbX0xQRQ2xzvc/iOhOSoITbvbH9GPe8vZcocxO/KHiIqTs1LZNTGPfE225LTg6bk5VPZGEwKhYuzcRokqvVQlQ0WBnWHEaLSzN86redhQpXv4E2W+iPe9qft0irFm6jtebJjfn84s09ZPav5t4v72PqTie14+MZ/9yHGMLC3FbXxtcPUlnYwPwfjCYqLvTUGwjRC+wtrCVFR1KurBhN33YWytm+A4DUzHG+Cu2MSIISbtFsc7L0+e384aMcJgwp57qVf2T0YU3Z/DjOeeUzlNF9Petyt5Swb1MxExclkzLmzMfrEyLYbMrOJ1ZZqI91dFhe2PaA7uiFF/kosjMjCUq4xa/f3csnOWXcMK6Sm97+K5kFLtSFw5jz703gxrHwKosbWP9yLgPTYpl2yVC37VeIYGA/cAyA8GEdZ42uNoZjsjYRGef/U2y0J/egxFl7alMBb+8sYEH/d7nwb1uJbAbj4iRGPPShW+uxtThYtTwLc4iRC27N6NCFVojeTmtNWp0Jl9akzvz2/pOroYqm8GhimgPnAd2vSYISZ+XpTQU8uHIb51n+w0+Xl+I0a/pfk0jCPe+5tR6tNRtezqW6tIklPx1PRIx/zwQqhLcVVjcz3BlBtbIzbmD/b5YXrX0PbTbTTwVWBwmQBCXOwhvbj/HAh9lcW/9frltbij3CRfpNmYT88DUwuvejtW9TMQe2ljL1kqEMSo9z676FCAa7D1czmlDyQzueKeVu3wHGeJLTM3wU2ZmTBCXOyOrs49z39lZ+m/Mw5+RW0NDfwYSbpmO6/mm3J6fyo/VsfO0gg0fHMXlxilv3LUSwKNiZz3iDwjqw4/JjNc0Qpxk1b7FvAjsLkqDEadtaUMXdL6zjj9v+THqRncPpDhbeuBjDpQ+5PTlZmx2sfCKL0EgzC24a3WHqACHEt8KPVQN96D+xY4aqNEVgtDbTJzHwZpbu0V1mpdQipVSuUipPKXVPJ+tjlFIfKKV2K6WylVI3uT9U4Q8OlTdw//J3+dfaP5FeZKdmYjOLf/MrDJf/y+3JSWvNp8/nUF/ZwsJbMwiLCrxr6EJ4S0qLmUaXizETM79Z5qyvoSkiighbY0DOLH3KBKWUMgKPAouB0cA1SqnRJxS7HdintR4HnAf8Q6kAvCMnunW0sok/PfAvfrP6H4TYHRxZ1Mj0n90Lkz1zPLLn00IO7Sxn+mXDGDA81iN1CBEMqhutDNFhFBkaCTF+24GobP37uExm4kPNPozuzPXkDGoqkKe1ztda24BXgSUnlNFAlGpN0ZFAFeBABI0jlY387p6HuHPNCziMLlrm17Fo0XUw5RaP1He8oJbNb+WRMjae8QsCZ3BLIXxh9/ZCwpSR0pimDsvzvmodQWLwsMCcI60nCSoJONbudWHbsvYeAUYBxcBe4Kdaa9eJO1JKLVNKbVdKbS8vLz/DkIW32Z0uHv7DE/xk88scSQDTZQ3Mvu7vsPBBj9TX0mBn1RNZRMSGMO/GUQF5acIdpL2InirOOgRA1MjYDsuPVrQODps2a4G3Q3KLniSozr4d9AmvFwK7gIHAeOARpVT0CWXQWi/XWk/WWk9OSEg4zVCFr7z6r2dY9vHj1ERqji5uYsbVL8L4a9w6QsTXtEvzybP7aKqzsWhZJqERgXlpwh2kvYieCquw4tSasVM73n2pVBaUzcrAID6DKgTaX2MZROuZUns3AW/rVnlAAZDunhCFL+1e8wETl/+d8mgou7iZZZc/AqlzPFbfzjVHOZJVycwr0+iXfNIxjhCiE4nNFmq0gyGDvu3Bpx126kOjCLU1Y3DjWJje1JMEtQ1IU0oNbev4cDXw/glljgLzAJRS/YGRQL47AxXetztnG0333E1dOIQsrOWqq5+EUZd4rL7ig9VseS+f4ZP6kTnnxKvIQoiuJOhQjhsbOyxryd2GPSyMaJw+iursnbJfsNbaoZS6A1gFGIGntdbZSqnb2tY/BvweeFYptZfWS4J3a60rPBi38LDC8ioK7ljKsGaNa1EN4y7/K6TN91h9TXU2Vj2ZTUxCGHOvT++1952EOF2FxyoJVQZqwuwdludvWAPKQGJ8YA0Q216PHlzRWq8AVpyw7LF2PxcDF7g3NOErzXUN7LpqASOPW6mY1sysRbfCxOs9Vp/LpVnzdDbWJgeX/Hg8llB5flyIntqxKYtJGFCJHedFO1RQBBEDSZ00zUeRnT0ZDlp0YLXbWfm9Cxh2vIm90+3MPH8szL/fo3Vu/6iAwv3VzL56BPGDIj1alxDBxn64tade8pTkDstLrBpcTkZMn+WLsNxCEpT4Rl2Lnd/fdjnpBdXsn2TnqovmoK59Awyeu8F6bF8V21YcJv2cREbNCLyhWITwtah6RYt2MWX8qA7LayyRmFuaCIsM3IM+SVACaL3Mdtc/7uS7Ww5RnuhiyUVTUN95Ekyem9aiodrKmmeyiRsQwexrRsp9JyHOQF9HCFVYMahvv85d1mZawiKJtDV1s6X/kwQlALj/v//H0tfW0BSumXxFKobvveCR55y+5nS6WP1UFnabi0XLMjGHBGY3WCF8qaHZRpyyUGWxdlhesnkN2mgkPsDv50qCErz77Itcuvxx7GYYeXk44be+5PaBX0/05Xv5lOTVMvfakfRJjPBoXUIEq+1bD2BRivrYjmMnHNz+JQCDBg/yRVhuIwmql9uxaScpf3+Q+jCIvAT63PYWhHt2QsCCPRXsXH2UjNlJjJia6NG6hAhmxVmHAYhM7dhmC8trAEg7d66XI3IvSVC92PGKOkrvvRWA4u9Gk3nPFogb6tE66yqaWfvsPhKGRDHzqsAcfkUIf6EqWy/tTZme2WF5lUOhbC30z5zoi7DcRhJUL1XfYufL6xcytKSJnbOMXPPDVRAa49E6nXYXq57IQmtYuDQTk1nuOwlxNuKbLTS5XMQnxnZY3mAOI6SlCaNJ7kGJALTy59cyoqCGLycYuO6vazCExXq8zs/fzqPsSD3zbhhFTEKYx+sTIphprennCqNC2Tosd9jt2ELCiLC3+Cgy95EE1Qt99vf/JXPdXnKTYNZDL2GO8vzzR3k7ytj7aSHj5g0mdYKMzC3E2corO0wfLFSHdBxrryx7BxgMxJkD/7ENSVC9zJYXHyLihY8ojoOE/3uIYQPGe7zOmtIm1r2QQ/+h0Uy/fJjH6xOiN9i2JRuDUjjjOz6rmP/FBgAG9I/3RVhuJQmqF3nl3bdQDz2BS4Htt3dzbuZij9fpsDlZuTwLg1GxcGkmRpN85IRwh+aDrUMcDZ/UsWNTUWHrbEipE6Z4PSZ3k2+LXuKzXbuIf+g3hLdA1d03sXjhD7xS78bXDlBZ1MCCmzKIigs99QZCiB6JrjPi0pq0SR2npqlsdqAcdpJmBv743ZKgeoHNeXkU3vd9BpVBxbUTWXjNXV6pd/+WEvZ9XsKkRckkZwbukP9C+KNEWyS12ok5tOOs0/VGC2ZrE+bwcB9F5j6SoILcZ7n5ZP36CiYc0BybPYi5v37JK/VWFjew4eVcBqbFMvUSzz5bJURvU1JbQz9XOFVm20nrrCHhhNkCvwcfSIIKansKq9l1/5XM2m2nZkwfFjy64tQbuYGtxcGq5VmYQ01ccGsGBqN8zIRwp0+37SXCYKSxT8eeevUlRbhMZmJU4M6i2558cwSpZpuDj395Awt2NlM+SjH9lfUos/nUG54lrTXrX8qlprSJC27JICLGc6OhC9Fb1eSVAxA7tE+H5Yc2fAxAQmxwjG8pCSoIOZ0unv7BpVy6LY/aKM20e+8Hk8Urde/bVMzBbaVMvWQog0b2OfUGQojTFlvaOjjsiMkdH9s4lpsLQPKIkV6PyRMkQQWh5Xf/iPO/KmBfhpMpj9xFyMTveqXe8qP1bHztIENGxzFpUYpX6hSiNxrcHE6Ny0F8csdBYsvqGkG7SD3/Qh9F5l6SoILMG4/+gdkfbqBgkGbxLVdgnHazV+q1NjtY+UQWoZFm5t80GmUI/KfYhfBHdoeTRB1GqfHkyQhrtRGj1Upk4hAfROZ+kqCCyMY175D+6EuUxWsmf28U4Yse9Eq9WmvWPZ9DQ2ULC5dmEhblncuJQvRGWdnFhCkjFdEn9+BrtoQREuCz6LYnCSpI7Nq/A/XLX2Mzw9ALzfS78UUweGe08D3rCsnfWc45lw9jwDDPjoguRG93YGceAOakjg++O1pasFtCiXKdnLgClSSoIFDVXMOOX91K3waNZZ6dlP/3Lli804vneH4tm9/KY+i4eMbPH+yVOoXozWxFdQBkTO44n9rRz9eCwUDfMM/31vUWSVABrrC+kN/86WJm7GuhcaSdMXe+Bn29MyBrS4OdVU9mEdEnhPNvGIVSct9JCE+LbTDg0JrhI1M7LD+8axsASUmen53AWyRBBTCtNQ89voxlb1dij3Ey4cF/Q9Ik79Tt0nzy7D6a6mwsWpZJaETwHLUJ4c/6O8KoUlaMxo6X8EtKW5+NSj13ti/C8ghJUAHsmbf/wPdfKIBwJ0N+fw9GL4xO/rWvVh/hSFYlM69Mo19ytNfqFaI3q29qId5godRy8lBG1TYXymEncewMH0TmGZKgAtTB43kM+ccrGNH0/f4MYi/wTndygKID1Xz5Xj7DJ/cjc07SqTcQQrjF51/sw6IUTbEnr2swhWK2NqOM3ukc5Q2SoAJQi62Zjbd/j6QqjWlOGIN/9KjX6m6qs7H6qWxi+oUz97p0ue8khBcV5hQCED+s46zUWmusIWFEOIJjkNivSYIKQP/6zXeYnt1ETYqLMb97x2s99lwuzeqnsrE2OVi4NBNLqMkr9QohWoVWOAAYNzWtw/KqnCy02UIfk/ZFWB4jCSrAPPb8A1ywooDaBCdTHn4U+qR4re5tHxVQlFvNnGtGED8o0mv1CiFa9WsOoUU7iUnsOMTRoY1rAOgfH1zjX0qCCiBVxwrI/PcrOI2atB9/H1P6fK/VfXRfJdtXHCZ9eiKjZgz0Wr1CiFZaa+J1KJXKdtKl9aIjRwBIHpPpi9A8RhJUgCgtr2XHdVcS1QRVS+Lpe9VvvVZ3Q7WVNU/vI25ABLOvCY5RkoUINLmlZfRRZmpCHCetK2+ygnYxdOZCH0TmOZKgAoDWmjW3/4BBpU2sucDA/F9/DF7qnOB0ulj9VBYOu4tFyzIxW4Knh5AQgWTzl1mYlUL3PfmZwzplwmhtISS6rw8i8xxJUAFg+R03MmnPfjaPg5t/thwVEuW1ur98N5+SvFrmXjeSPonBMQmaEIGo+UA1AEljTh4posUSTpi92dsheVyPEpRSapFSKlcplaeUuqeLMucppXYppbKVUhvcG2bv9dqK95i+fhuNYZqrfrSUuCHneq3ugt3l7FxzlMzZSYyYkui1eoUQJ4utab1qMnJKxx58tupqHCGhROmTL/0FulP2E1ZKGYFHgQVAIbBNKfW+1npfuzKxwH+ARVrro0qpfh6Kt1fZdTCfuAd/jUtB4tUJRM/+mdfqrqtoZu1zOSQMieLcq4afegMhhMdorelvD6NRObBEhnRYd+Sz1a2DxEYG3zQ3PTmDmgrkaa3ztdY24FVgyQllvg+8rbU+CqC1LnNvmL2PzWFl38+vZlClE+v5zQxa9qL37jvZXax6IgutYeHSTExmue8khC9VNFjpTxiVxpOn0ijYuxOAwSnJ3g7L43qSoJKAY+1eF7Yta28E0EcptV4ptUMpdUNnO1JKLVNKbVdKbS8vLz+ziHuJF3+zlAkH6zk22cq0mx6EPt778H3+Vh5lR+qZd8MoYhLCvFav6Ejai/jazpwCYpSR2qiTL+OVVtUAMGzmPC9H5Xk9SVCdHbaf+LiyCZgEXAQsBO5VSo04aSOtl2utJ2utJyckJJy4WrRZt/YVpry/jaIkF3MunQsTrvVa3Qe3l7J3fSHj5g8mdYL8H/mStBfxtWM7D2NQCkvqyR2Vqh0K5bATnzbWB5F5Vk/GqikE2s9ENwgo7qRMhda6EWhUSn0GjAMOuCXKXmR/1X4q//IH4hVknGci5LJ/ea3umtImPn1xP4mp0Uy/3DtzSgkhTs1U0nppb+Tk1JPWNZpDsVibvXYLwJt6cga1DUhTSg1VSlmAq4H3TyjzHjBLKWVSSoUD04Ac94Ya/OxOO/95+GYyj7oIG9PAgBue8No4ew6bk5XLszAaDVxwayZGozyBIIS/SGiy4NQuBiYP6rBc22zYQsOIcAbXILFfO+UZlNbaoZS6A1gFGIGntdbZSqnb2tY/prXOUUqtBPYALuBJrXWWJwMPRo+8fT/Xv1+NtY+T5Ft/DMnem9fls9cOUFnUwMV3jCMqLtRr9QohuudyuujvCqPc3EKyqeOBY8XOba2DxDqD7+wJenaJD631CmDFCcseO+H134C/uS+03mXLwY1M/PvbmLQm+bIUwuf9wmt17/+ihJzPS5i0OJnkzOB6El2IQHfwUAVxRgM54Sc/iJv/5WcA9O8XnO1WruP4gZK6KtY9+FP61UK/WVb6/OgFr11PrixqYMPLuSSNiGXqxUO9UqcQoue+3JyDWSkcA08+nyg61jo/VPL4Sd4OyyskQfmBnz99Bxdtb8aeYiXp9n9DVH+v1GtrcbDqiSzMYSYW3JKBQe47CeF37EdrABg9+eSOS+Ut9tZBYs8Jvi7mIAnK557Z+SaXrdyFyaVJv/YiGHWxV+rVWrP+pVxqSpu44JYMImJCTr2REMLr+jaa0FqTkn7yiC71RgsmawuW8OCcn00SlA/lVuWy+/nfM/awJm6KAcv3/uK1urM3FnNwWylTLxnKoJHBNcmZEMFCa02iI4xqZcUU0nEUc+1y0RISTqg9OHvwgSQon2l2NPPy725k6cc2jAk2Ev/nt2AJ90rd5Ufr2fj6AYaMjmPSohSv1CmEOH1FxbXEG02UhDadtK7lSD6OkFBiDE4fROYdkqB8wKVd/OWp2/juqlrsA+yk/mA8avx3vVK3tdnByuV7CYu0MP/m0ShDcHZPFSIYbP8ih1CDorH/yeNhHt6wCgwG4mOC8/IeSILyiXe2Pc/5T23FGg6j57Rg+u5/vNJrT2vNuudzaKiysnBpJmFBOPqxEMGk4WAFAIMnnDwW55GDB1vXjTxpVLmgIQnKy6qbq7H/7iH6NMDIGeVYLrrfa7329qwrJH9nOedcPowBw2K8UqcQ4szF1imcWjNx0qiT1pXWNQIwbPpcb4flNZKgvOzV3y9j3CE7jG8iPGMkTLrJK/Uez69l81t5DB0Xz/j5g0+9gRDC5wY6wilTzRjNJz8DVYMRZbcRmxS8zy9KgvKiF5/4EzPfzaJ0AIwab0Fd/y4YPD/XUkuDnVVPZBEZF8L5N4xCBeGgkkIEm8NHy4kzmCgNs3a6vjEknBBbc1C3Z0lQXrL3k48Z8/Dz1EXApKmlmK56GiI9P4WCdmk+eXYfTfU2Fi7NJDTCfOqNhBA+t+2TvZiUwjHk5GcUHTU12MPCiXB2nryChSQoL2gpKaHprl9QHQWJF1QQtegXMHSWV+r+avURjmRVMvPKNPolR3ulTiHE2VPHGgAYN2/0SetKN3+CNproGxbcB5ySoLxg1U+WEd7ipHJ+E8NGnANz7vZKvUUHqvnyvXzSJvcjc86JkyALIfxZ32Yz9S4HQ4ecfM84b8dWAJKGBt807+1JgvKwDa++yYi9eWycpFgSZYDvPAUGz7/tTXU2Vj+ZTUy/cM67Lj2or1MLEWy01iS6QikzdD5KRFFFNQDDZpzvzbC8ThKUBzmtVtQ/H6QqEmYPL8d05VMQ2c/j9bpcmtVPZWNtdrBoWSaW0B7NqiKE8BPZeceIMpioCLd3ur7KZUA5HQwcOcbLkXmXJCgPWvuzn5JQ28LeWTYyJ98Iw7xztLPtowKKcquZc80I+iYF71PmQgSrrM37ADAM7nxG7QZLGBZrMwaj53sB+5IkKA85tnUbg9dtYMto+F5aAiz6k1fqPbqvku0rDpM+PZFRMwZ6pU4hhJsdbR17b9KcjJNWuRrqsYYGfw8+6OGMuuL02Kw2cn9+O1FhMGR8LX0ufQGMnu9t01Ddwpqn9xE3IILZ14z0eH1CCM/o3xhCvcvJqNTEk9Yd/+xjtNlCXxXcPfhAzqA84oX77iGpop6ds+ycP+n7MGiyx+t0Ol2sfjIbp93FomWZmC3BfeovRLBqsjoY4Iqg1Nh5B4m8HdsASEoZ4s2wfEISlJvt3b2XiR99TN4guHpsMurCv3ml3i/fzafkUC3nXTeSPomdX7cWQvi/jTv2EWkwUhvT+TQaxeVVAAw/Nzhn0W1PEpQbaa3Z9PdfYHZC4rQ6Ypf81yujlBfsLmfnmqNkzk5ixJSTLwkIIQLH4R35AESnxXW6vtJpAJeTgSMzvRmWT0iCcqNHXv2QmTuOcDTVyZTvPgQJnh8Gv66imbXP5ZAwJIqZV6V5vD4hhGfFVLSeOU2c3XkCqg8Jb+3B54XnKX0t+H9DL8kvrSPlsd9hcMGoBaNh3Pc8XqfT7mLVE1loDQuXZmI0y3+nEIGuvzWEOpeTmISok9Y5a6uxhoYT6bL5IDLvk280N3C5NM8+cC/DSxvZOsfJ0B/82yv1fv5WHmVH6pl34yhiEsK8UqcQwnNK6xoZqCMpM3Xehfz4+hVoSwhxYb1jslFJUG7w9Jo9LNqymuJ4uOq710Os5+dbOri9lL3rCxk3fzCp4z0/KroQwvPWbd1FhDLS1PntJw7t3g7AoJTgHoPva5KgzlJWUS08/j/0aQQWJBA599cer7OmtIlPX9xPYmo00y8f5vH6hBDeUZVVDED/jM5n2S6qqAV6Rw8+kAR1VmqabNz57AdMOHScgiGK8/73HY8PBOuwOVm5fC9Go4ELbs3EaJT/QiGCRd8KA1prMs89eYp3+LoHn4uBaelejsw35NvtLPz63SyW5PyTcCsMu/4ajBF9PV7nZ68doLKokfk3jyYqLtTj9QkhvMPqcJJki6QOByHRJ09SCNAQEo7F1jt68IEkqDP28d4SSnctZ9reJmr7mxhx3W88Xuf+L0rI+byESYuTSc7wfDIUQnjPl7nFJBFGaVjnI0g4iguwhkYQpTsf4TwYSYI6A1aHkz+t2MqyLzYAkPHo4x6fb6myqIENL+eSNCKWqRcP9WhdQgjv27d5HxaDgtTOz56K1rX24Osb2Xt67EqCOgPPfH6YxTl/ZnA5WK4aT1TmDI/WZ2txsHJ5FuYwEwtuycAg952ECDoRx5oBSD+v84GeD2btBSA5vXfcfwJJUKetvN7K2xueYOFXNdT2U2T+/L8erU9rzfqXcqkta+KCWzKIiOn86EoIEbi01gxuCaVBOxg4ZFCnZYprWxNY2rkLvBmaT0mCOg1Ol+bWZz7hxq3vY7FrRj3we1R4rEfrzN5YzMFtpUy9JJVBI/t4tC4hhG8cOF7DYMIoMjd2WabKEIJyOkgYMMCLkflWjxKUUmqRUipXKZWnlLqnm3JTlFJOpdSV7gvRf3ywu5iLt93HxDwNi9OJOe87Hq2v/Gg9G18/wJDRcUxa1DsezBOiN1r/yReEGAxYB3U+x5PLaqUxLJJQW5PH73f7k1MmKKWUEXgUWAyMBq5RSo3uotxfgFXuDtIfVDXa2Pb6n5j2VRPHhoWQ8Y93PFqftcnOyuV7CY+yMP/m0ShD7/lQCtHbmA63njmNndP5ALFNX23CHhZBrEF7Myyf68kZ1FQgT2udr7W2Aa8CSzop92PgLaDMjfH5jQfe3src3WswOmH4fX/16FGM1pp1z++nocrKBbdmEhbZO8bdEqI30lozpDGMJpeLgSM7v3x3aNMnYDSS2L93DWvWkwSVBBxr97qwbdk3lFJJwOXAY93tSCm1TCm1XSm1vby8/HRj9ZkP9xST8cX9JOUb+GpuAqnTLvBofXvWFZK/q5zpVwxjwLAYj9Yl/FegthdxevaX1JLsiqTE1PUDuPlHSwBImz7Hm6H5XE8SVGenCieeZz4M3K217nwKyK830nq51nqy1npyQkJgHAnYHC4++Ogjhu8upDIa5v/+OY/Wdzy/ls1v5TF0XDzj5nl+0FnhvwKxvYjTt3bjDsINRlr6d31V5rhDgdYMHz/Zi5H5nqkHZQqB9t+Ug4DiE8pMBl5tu+wVD1yolHJord91R5C+9OzmAi7Y+S8SKxVFd17GgHjPPSTb0mBn1RNZRMaFMO/GUb3qZqgQvdaBciCJoeekdrpaa01taBRmazOWkN71mElPzqC2AWlKqaFKKQtwNfB++wJa66Fa6xStdQrwJvCjYEhOh8ob2LHiP4zIcpCXEc68W//osbq0S7PmmX001dtYuDSTkPDOe/MIIYKHzeEirSECq3YxfFLnMxO05OzCGh5JDL1niKOvnTJBaa0dwB209s7LAV7XWmcrpW5TSt3m6QB9xeXS3PX6dhbtXQHA2Lv/5NEzmq9WH+FodiWzrkqjX3K0x+oRQviPjbmlDNPRFJobMZg6/zrOW/ku2mwhKaH3PQfZk0t8aK1XACtOWNZphwit9Q/OPizf+2hvCcMP/ZX0Q1A4bzBjpnquY0TRgWq+fC+ftMn9yJiddOoNhBBBYd/nOYw0mKlL6noK99z8oxCfTPq5s70YmX+QkSQ64XC6+O/773LxpgKqomHOAy97rK7GWiurn8wmpl84512XLvedhOhF+h6rByB9QUaXZUqcRnC5SJs801th+Q1JUJ14eetRJlQuJ74O+t35Qyx94z1Sj8ulWfN0NrZmB4uWZWIJ7dEJrRAiCNgcLlKs4VRpG8OHDe+0jKuxkfqIaEJbGjCZet/3gySoE5TXW1m17o8s2GLF2sfM8Ctv91hd2z4soCi3htnXjKRvUqTH6hFC+J9Ne4sYoEIoCa3v8spJ3dZN2MIjiTO5vBydf5AEdYLn1u5gQsFG+tdAym8fRBmNHqnnaHYl2z8+TPqMAYya0XsGfxRCtNq3PguzUhhGdT2/U86G1WAwkDJkoBcj8x+SoNo5VtVExZY/sOALaEwfQOyiSzxST0N1C2ue2UfcgAhmXz3CI3UIIfzbwDIHLq0ZN398l2UKyioBSJ+90EtR+RdJUO3836pNZOQUYNCQ+a9nPFKH0+li1RPZOO0uFi3LxGzxzBmaEMJ/ldY2k+aIpFg10S++f5flylQIymFnUPoYL0bnPyRBtSmvt2Lf8zsm54Lp8jmEDvHM9BZb3s3neH4tc69Pp09ihEfqEEL4tw0bCuhjNFEa1/X8T87qahoiowm3NnY5Rl+w652/dSee/HQ9iz6vwmaBEb/8u0fqyN9Vzq41R8mck0Ta5K6PmoQQwc225ygAMed0/fBt2doPcYSGkxDWe7+me+9v3k5eWT0Vm+8jpQzCrrsIY6T7e9TVVTSz7vkcEoZEMfPKNLfvXwgRGFwuzYBaA83ayaRpU7osl/XF56AUw0enezE6/9LrE5TLpfnDqy8ybWc9tlDF8DsecHsdTruLVU9koTUsXJqJ0dzr33Yheq2coloGEMJxUwNRIVFdljvaaAUgc+5F3grN7/T6b8pnNh9mePFjjDmiibjuSgzh4W6v4/M3D1J2pJ55N44iJqHrLqVCiOC3ctVOoo0GGgd2/WyTdjioDI3EZG0itn/vHf6sVyeouhY7q9a9SPpXNpxGxdCld7q9joPbS9m7oYjx8weTOl7m9BGitwsrqAYgffaoLss07fmK5qgYYp0t3grLL/XqBPX61qPMLHyVjKMQ+ZNbMca4d/bamtImPn1hP4mp0ZxzeedD6Qsheo9mm5NMaxTNOEge3fnwRgD7V7yNNppIHti7D2p7bYLSWpO7+V6mb3VRnRpN8rKfuXX/DpuTlcv3YjQZuODWTIzGXvtWCyHarN6azSBDCIURTShj1wND7z/WOids5rzF3grNL/Xab83PcouZ88lOIltgzJ8fd/so4p+9eoDK4kbm3zyaqLhQt+5bCBGYijYfxGJQxE3sengzrTXHzREY7DaSMyZ6MTr/02sT1IYXf8qwQqidmkzU2PFu3XfO5hJyNpcweXEKyRl93bpvIUTgGloZhlNrMueN7bKMNe8AjdGxRNl77wO6X+uVv/1HX+1n2oZsmkNh0v+95NZ9VxY18NkruSSNjGXKxUPdum8hROA6XFhFmo7kkLkOYzdT6+R98CouSwhD+srM2r0uQWmtOf632xlSDs7vT8Xcx31nOLYWByuXZ2EOM7Hg5gwMBpl8UAjRav37Wwk1KJpGdj+vU3ZeAQBj5npuFu9A0esS1MoP13HOzmKyh8OEnz7qtv1qrVn/Ui61ZU0svCWDiJgQt+1bCBH4BhxzYdeamZdM77ZckTEMg93G8Mnneiky/9WrEpTLpWl+9Fe0WGD4DYswhbhvSKPsjcUc3FbK1EtTSRrZ9fhaQojep7S8kWHOSA6ZaoiN7fpxFmtxEfXRfYi21vf6+0/QyxLUmpffYdThOnLGOxl/2R/ctt/yo/VsfP0AQzLimLTQM6OgCyEC1+aPcgg1KEoGN3Rbbt+bz6HNFpL7ygzb0MsSVMOrj9AQCsMXjAGLe6a6sDbZWbl8L+FRFubfNBol952EECcw5VXi0pr0Bd0PFL370GEApl54sRei8n+9JkEVbNvF6LwS9ma4mDb3V27Zp9aatc/l0FBlZeHSTMIiLW7ZrxAieDicLlJtIRSqBsanjO+2bIklEktTA0ljZ3gnOD/XKxKU1ppdv/sFAImT+6AGTXLLfnevPUbB7gqmXzGMxFT3DpMkhAgOW1cXEGMwsj+6DLPR3GW543t2YQ2PItFRB24eOCBQ9YoElfPFNtLzCtk0SbN4oXvOno7n1/LF24cYOi6ecfMGu2WfQojg07DlKA6tsZzX/UwJX779MijF2PQhXorM//WKBJX151/iVDB8chxq1CVnvb/mBhurnsgiMi6EeTeOcvswSUKI4OCwOklpNnCMBi6auKDbsgW1TSiHnfHX3Oal6Pxf0Ceozz5awZgDxeyY4OK8Sx8861Nn7dJ88kwOTfU2Fi7NJCS861N2IUTvtu3dg4QbDHzV9zB9Qrt+/MRhs1EbEUN0QzWmqHgvRujfgj5BHX/0LzSGwNRzE1HD5p71/nasOsLR7EpmXZVGv2QZikQI0bWmPSU4tCZ2bvfPRu59+2W0ycxQ98+XGtCCOkFtWL+DMfll7BvjZNTCe896f0W51Wx9P5+0Kf3JmN17Z7kUQpxaY6ONQXYDBYYqlozpftqM3V9tB2Dqogu9EVrACOoEdfSx+3EBgyYmwLB5Z7Wvxlorq5/KJqZfOOddO1LuOwkhurV1xUEiDAZyE44TGxrbbdliQjA31jNw1kXeCS5ABG2C2p9XwNi9eWwdq5l7ye/O6t6Ty6VZ83Q2tmYHi5ZlYulmJGIhhABo/qoErTWDz+t+VoOifXuxhUcx0Foj3ctPELQJatNf78bihNSxcajhZ3f2tO3DAopya5h9zUj6JskQJEKI7jXUtDDMYaHAWM0F487vtuzmN14AYMKoYd4ILaAEZYIqKypk4pa97E/VzL72L2d1VHIku5LtKw4zasYARs3oehZMIYT42ra3cogwKvYM6P7hXID8BjvGlmbG3PhjL0UXOIIyQb37j3sIs0HcZBNq6Kwz3k99VQufPL2PvkkRzLp6hBsjFEIEM9P+alq0k3GXjOm2XGlBHs0RMSQ2lGMMj/JSdIGjRwlKKbVIKZWrlMpTSt3TyfprlVJ72v5sVkqNc3+oPXO8tobhm3dS1F8ze94NZ7wfp9PF6iezcTpcLFyaidlidGOUQohgVbCvgiRlIsdSzLnJU7stu/7lZwCYNFxGo+nMKROUUsoIPAosBkYD1yilRp9QrACYo7UeC/weWO7uQHvqyYfvYkCNi+jhzagxV53xfra8m8/x/FrmXp9On0T3jHwuhAh+u97JxWJQHBlRi0F1/RWrtSa/wY6psZ5xt/7MixEGjp6cQU0F8rTW+VprG/AqsKR9Aa31Zq11ddvLLcAg94bZM2WNVfTduxm7STNl3iyI6773TFfyd5Wza81RMuckkTa5v5ujFEIEK2uTnfhKG1YczJ4/s9uyR/fvwxoSTmJdGcbIWO8EGGB6kqCSgGPtXhe2LevKLcDHna1QSi1TSm1XSm0vLy/veZQ99M/Pn2biISemRBtq7i/OaB+15c2sfS6HhCFRzLyy+7lbhPAkT7cX4X77thTTz2jkQNhxxg7o/v7Tp689D9rFjDHDvRRd4OlJguqsC5zutKBSc2lNUHd3tl5rvVxrPVlrPTkhIaHnUfaAS7toWfMW0c0wcNJgSBx72vtw2l2seiILgEXLMjGag7IPiQgQnmwvwjMOrDtEhFFRNyKk23Iul4ujdiOhtdWMWtrp16WgZwmqEGh/B28QUHxiIaXUWOBJYInWutI94fXch3kruOyzGuwRLmJu+uUZdS3//M2DlB+tZ96No4iOD/NAlEKIYFVT2kRyk5Fm7Cy4sPuRy3et/gCX2UKqrQYVEuqlCANPTxLUNiBNKTVUKWUBrgbeb19AKTUEeBu4Xmt9wP1hntrqD56kXy3EjzGjRlxw2tsf3F7K3g1FjJ8/mNTxcrQqhDg9X35ykAFmxVexx4mL6b7L+OZP14HTwZzLr/BSdIHplGP2aK0dSqk7gFWAEXhaa52tlLqtbf1jwH1AX+A/bWPUObTWkz0XdkeVzZWM/PIATqMm/vs/AMPpXZqrPt7Ipy/sJzE1hnMul6e5hRCnR7s09V+VYTSHMujc9G7L1lVVUWGJJqamnP4LLvdShIGpR4PKaa1XACtOWPZYu59vBW51b2g999SWZ1mwT2MYZMcy5/Qm+7LbnKx6IgujycDCpRkYjXLfSQhxeo7lVpGsLdSqZmac233vvbWPPwxGI1P6ydwapxIU38bWd94n1A795k2DkNMbK2/jqweoLG5k/s2jiewj14KFEKfvkw920s+sODzQijJ0f/97f1UDRmsz03/yKy9FF7gCPkHlVOQxZWcZjbEu4m9+4PS23VxCzuYSJi9OITmjr4ciFEIEs4ZqKwOKjBiVYsqF07otu2/VR1gjokluKscYIzPnnkrAJ6j3nv8zyeVgmTIE4nv+PEFlUQOfvZJL0shYplx8Zg/0CiHEmo+3k2IxciS0gX7D+nVbdsPKj0Br5l989rN79wYBnaDsTjsjV3xBS4hmxI//0OPtbC0OVi7PwhJmYsHNGRhOcUouhBCdsTY7aNrSRJRRETE1pduy9ceOURbRh6j6SgbOv847AQa4gE5QL7z7KOmFLuonWggd0f2p9de01qx/cT+1ZU1ccEsGETHdP1AnhBBd+XJFHiPMFlqUgzHzuh955uN//QVtMnPOsH4yMWEPBWyC0lqjX34ehwHGXdjzaZKzNxZzcHsZUy9NJWlkHw9GKIQIZnabk0OfFdLfrCgbAMaQrjtF2xsaOIAFk7WF6ctk5IieCtgEtTP/K6bmNFMx0kbMvKU92qbsSB0bXz/AkIy+TFqY7OEIhRDBLG97GakGEy5cTLzunG7Lfvq33+KIiCYz3InBLFdteipgE9THr/4NkwsGp/eDuNRTlrc22Vn1RBbhURYW3DT6lF1BhRCiK1prPv9wP4Msipy+NYTGdT00mtNqZUe9HeV0sPCnv/RilIEvIBNUna2OuN1Z2E2alGtOmj/xJFpr1j6XQ0OVlYVLMwmN7H4KZiGE6M6BraX0b4AQZWDY+eO7Lbvmz7/GGh3HKFMLYdFx3gkwSARkgnpnz7vM2OfEPlhhGnPpKcvvXnuMgt0VTL9iGImpMV6IUAgRrBx2JxvfymVQqJPikHrSJnZ9u8DR0syOBhdGm5Uld97rxSiDQ0AmqKyPXsTigITzzz9lb5iSQ7V88fYhUscnMG6eTKsshDg7h3aUEd7oIsEQgmH8QFQ330GrHrgbe0Q0GRYrIZFycHy6Ai5BNdubyfiqEGuoJum6n3RftsHG6ieziIwL4fwb0rv9IAkhxKlordmx9jAp4XYaDFYmLMrosmxDcRE7bUYMdhsX/u/93gsyiARcgnpm6xuMLdC0DA3BOGBkl+W0S/PJM/toqrexaNkYQsLlvpMQ4uzk7yzHXtTMEGMYjZlRGMO6/l758M/34oiMYUp8CKGR0V6MMngEXII6/PEzhNkgZeGSbsvtWHWEo9lVzPruCBKGdD83ixBC9MSW1fmMiHBiU07GXzy+y3LHv/ycAxEJWKzNzLtdeu6dqYBKUMX1xxm9txS7WdP/hl90Wa4ot5qt7+eTNqU/GbMGejFCIUSwOra/CsOxZgYbQ2mYHI4xuvPnmbTWvPnMU7hCwlg8YTgWi8XLkQaPgEpQ/33zj0w6qHEOjUCFd35W1FhrZdVT2cT0C+e8a0fKfSchxFlzuTQbX9nPxAhFjbGRjEUTuiz75d//REW/QcQ3VzLhuz0bREB0LqASVNLKzRhcMPyOzudGdLk0a57Kxt7sYNGyTCyhPZqPUQghurXv82IG1dmIMBgpmGvAGNH5vafGgwf5tKQUpTXX3HStl6MMPgGToPYUHmZSbiOVqQ6iZl3daZltHxZQdKCGOd8fSd+k05u4UAghOmNtdvDlWwdIthjYFJ/DxfMWdFpO22y89acHsEb3YUJYFX3Tux/+SJxawCSo1S8+RWQLRIwZCGEnD/J6JLuS7SsOM2rGANKnD/BBhEKIYLTujQOMUAqUZsqVs7u8bbDrgXvJT0omoqWWi396epOnis4FTIJK3LiCFjOMufSak9bVV7XwydP76JsUwayrR/ggOiFEMDr0VRnVX5aSHGIgd0gpw1LSOy1XtnoVHzc0gTJw9VUXYYiQGbrdISAS1KacnUw61ETFCDuWE4Y2cjpdrH4yC6fDxaJlYzBbjD6KUggRTGpKm1j7dDYTI6HGVM/Ua+Z1Wq6lrJRXX30BW2xfpiWFMHjSfC9HGrwCI0E9+wgAKWnxEN2x2/iWdw5xPL+OudenE9s/3BfhCSGCjMvpYuVT2Qw2aSKViezpNcT2OfmsyGWz8cb//piqQUPpr+tYuFSeeXKngEhQxuO7AUhd2LFXTP6ucnZ9cowxc5JIm9zfF6EJIYLQV6uO0HCsnmFhmpyIAr6z6KpOy6352Y8oGJiCWTu57vafYTAExFdqwPD7d3N/aTkjjzVS1k9jnHHTN8try5tZ+1wO/ZKjOPfK7qdaFkKInio7UsfWDwoYHWPDAAz53gQsxpMftt3x8N/YFhKBKzScKxfPJKqfDEbtbn6foN5f8wxpxRAyagCEtHYdd9idrHoiC6Vg4dJMjGa//zWEEAGgucHGe//ZTVqYkyFEkDe9hpEjxpxULue5p1h55CiO6D7MH92fkTMu9EG0wc/vv9mNW94BIP36u75Z9vmbeZQfrWfejaOIju96JkshhOgpu83JOw99xQibg1GWUA4PrWbRpd85qVzWi0/z9s6d2GP6cu7gcGZ+94c+iLZ38OsEpbVmVHYNVbGKmHMXAXBwWylZG4oYv2AIQ8cl+DhCIUSw+OLdPAZWtTAsxMSelOPMuPXik8psf+IR3tmdhT02nlmDLCy45a5O9iTcxa/HAtry8esMLYHccxNQSlF9vJFPX9xPYmoM51yW6uvwhBBBYveGozg3l5AWamRnYikX/78rOzyQq7Xm09//ik1NTlxhkSxOi2Xatf/ju4B7Cb8+gzry/lMADL52KXabk5XLszCaDSxcmoHR6NehCyECxLZ1+Rx/O5+0UCPb44q56MdXdEhODSXFvHDL1WxsAcwWvjt5iCQnL/HbMyinS9M/u5DCBJg39/t8+kIuVSWNXPLjcUT2CfV1eEKIAKddmnde3EHy7kYywozsi6rk0p9fhaHt4FdrTfY7b7Dqg3dpSErDhIsbrrqIwWOn+zjy3sNvE9QXew6QWK7ZMTOC3C+Os39zCZMvTGHIaBlCRAhxdqorm3j575uZYTOTYDawd2Q9i25cgjK0njkV5mSx8r//oiQ0CmfyCPrQwvU/+ilx/WScT2/y2wS1/51/cS7Qd/hsPnvlAEkjY5ly8VBfhyWECGBaaz5YkYttzVEWWkIxmV1UzDKz+KLWbuLHcrJZ+czjlCgLrriBmO1W5g8xMfX632M0dz29u/AMv01QsVlbqA8NoaLhMixhBhbcnIHBIJMPCiFOX02TjXdW7MLwRRkTVRR9QsMoDK1m+A2T6d8viq2vvMCOLz6jPCIOV3gcoU2NTKGEmXf8nJABI30dfq/VowSllFoE/B9gBJ7UWv/5hPWqbf2FQBPwA631V2caVEOLnaQjTewdezPWSgdLfjaBiJjOp1cWQogTOV2aXYXHWfXVdqL3NDG2Lo5ZhhBCzTHUGFo4NsaGtTKfNx/6gEpTCI7IGHRcEmFN9cxSVUz9xf9iShji61+j1ztlglJKGYFHgQVAIbBNKfW+1npfu2KLgbS2P9OA/7b9e0a+WvkG1uhZtIRP4pwlqSSNOHn+JyGEsNucVFU3sffIIY4eLMNaWo+lvpl4q4Uhjj5cq6JxqAgqjfVku/Kosh6hzFmHdXckrtBwiE/CaLcx2FbFtIyRjLryVxjMJw9rJHyjJ2dQU4E8rXU+gFLqVWAJ0D5BLQGe11prYItSKlYpNUBrXXImQR35bD31w79DRHw9Ey9IPpNdCBFUyouO8/g9f+t8ZSdXvr9epD0WUedOVV9XF+lPvZ0CpVr/bfubtmVti3AqjcZFEy4OmZzsM+ViU050h0pDMTiMxFjrGe6qZdz08QyceQWGKBls2h/1JEElAcfavS7k5LOjzsokAR0SlFJqGbAMYMiQrk+f7Y0JmO31fOfnF3zTq0aI3qZ9e0kaMJA6i939dXSZMk7DCdmlu+R4trXpb/aqv/lHaQ0uF9rlAJcNXDaMOIjBRbgRYkINJMTFkDR8GP0nzSasXwpKRh0PCD1JUJ19pk787PWkDFrr5cBygMmTJ3d50HTz4w9Se7yYqLjoHoQnRHA6sb384oFf+TgiIbyrJ4cRhUD7ceQHAcVnUOa0xCQOPHUhIYQQQasnCWobkKaUGqqUsgBXA++fUOZ94AbV6hyg9kzvPwkhhBDQg0t8WmuHUuoOYBWt3cyf1lpnK6Vua1v/GLCC1i7mebR2M7+pq/0JIYQQPdGj56C01itoTULtlz3W7mcN3O7e0IQQQvRm0pVFCCGEX5IEJYQQwi9JghJCCOGXJEEJIYTwS5KghBBC+CXV2gHPBxUrVQ4c6aZIPFDhpXDOhL/HB/4fY6DHl6y1TvBGIEqpeiDXG3W5gb//v7YnsXpGZ7GednvxWYI6FaXUdq31ZF/H0RV/jw/8P0aJr+f8KZZTkVg9ozfGKpf4hBBC+CVJUEIIIfySPyeo5b4O4BT8PT7w/xglvp7zp1hORWL1jF4Xq9/egxJCCNG7+fMZlBBCiF5MEpQQQgi/5JMEpZRapJTKVUrlKaXu6WS9Ukr9q239HqXUxJ5u66X4rm2La49SarNSaly7dYeVUnuVUruUUtt9FN95Sqnathh2KaXu6+m2XorvF+1iy1JKOZVScW3rvPH+Pa2UKlNKZXWx3mufP39vC6cZq0/bxWnG6tM2cpqx+rS9nBCLd9uO1tqrf2idU+oQkApYgN3A6BPKXAh8TOtU8ucAX/Z0Wy/FNwPo0/bz4q/ja3t9GIj38ft3HvDhmWzrjfhOKH8JsM5b719bHbOBiUBWF+u98vnz97ZwBrH6rF2cQaw+ayNnU58v2ssJ9Xu17fjiDGoqkKe1ztda24BXgSUnlFkCPK9bbQFilVIDeritx+PTWm/WWle3vdxC6xT33nI274FfvH8nuAZ4xc0xdEtr/RlQ1U0Rb33+/L0tnFasPm4X7fl7Gzmb+rzeXtrzdtvxRYJKAo61e13YtqwnZXqyrTfia+8WWo8YvqaB1UqpHUqpZW6O7XTim66U2q2U+lgplXGa23ojPpRS4cAi4K12iz39/vWEtz5//t4WehJHV7zdLtrz9zbSXjC0l/bc+nnt0Yy6bqY6WXZiX/euyvRk27PV4zqUUnNpbYgz2y0+V2tdrJTqB6xRSu1vO+rwZnxf0TruVYNS6kLgXSCth9uerdOp4xLgc611+yMyT79/PeGtz5+/t4WexHFyQd+0iw4hdLLMn9pIe8HQXtpz6+fVF2dQhcDgdq8HAcU9LNOTbb0RH0qpscCTwBKtdeXXy7XWxW3/lgHv0Hpq69X4tNZ1WuuGtp9XAGalVHxPtvVGfO1czQmXK7zw/vWEtz5//t4WehJHBz5sF6cVq4/byGnF2o6/tpf23Pt59dbNtXY30UxAPjCUb2+WZZxQ5iI63mjb2tNtvRTfECAPmHHC8gggqt3Pm4FFPogvkW8fwp4KHG17L/3i/WsrF0PrtewIb75/7epKoesbvV75/Pl7WwikdhFIbeR0Y20r59P2ckIsXms7Hv1FuvkFLwQO0Nqr49dty24Dbmv7WQGPtq3fC0zublsfxPckUA3savuzvW15atsbvxvI9mF8d7TVv5vWm9UzutvW2/G1vf4B8OoJ23nr/XsFKAHstB7Z3eKrz5+/t4VAaheB1EZOJ9a21z5rLyfU6dW2I0MdCSGE8EsykoQQQgi/JAlKCCGEX5IEJYQQwi9JghJCCOGXJEEJIYTwS5KghBBC+CVJUEIIIfzS/weNbKHJnT5F1wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_proba_1= y_proba_lr_1\n",
    "y_proba_2= y_proba_lr_2\n",
    "y_proba_3= y_proba_lr_3\n",
    "y_proba_4= y_proba_lr_4\n",
    "fig,(axe1,axe2) = plt.subplots(1,2,sharey = True)\n",
    "for i in range(len(np.unique(y_test_1))):\n",
    "    fpr_1,tpr_1,thresholds_1 = roc_curve(y_test_1,y_proba_1[:,i],pos_label = i)\n",
    "for i in range(len(np.unique(y_test_2))):\n",
    "    fpr_2,tpr_2,thresholds_2 = roc_curve(y_test_2,y_proba_2[:,i],pos_label = i)\n",
    "for i in range(len(np.unique(y_test_3))):\n",
    "    fpr_3,tpr_3,thresholds_3 = roc_curve(y_test_3,y_proba_3[:,i],pos_label = i)\n",
    "for i in range(len(np.unique(y_test_4))):\n",
    "    fpr_4,tpr_4,thresholds_4 = roc_curve(y_test_4,y_proba_4[:,i],pos_label = i)    \n",
    "axe1.plot(fpr_1,tpr_1)\n",
    "axe1.plot(fpr_2,tpr_2)\n",
    "axe1.plot(fpr_3,tpr_3)\n",
    "axe1.plot(fpr_4,tpr_4)\n",
    "axe1.plot([0,1],[0,1])\n",
    "axe1.set_title('ROC')\n",
    "axe2.plot(1 - thresholds_1,tpr_1,label = 'TPR')\n",
    "axe2.plot(1 - thresholds_1,fpr_1,label = 'FPR')\n",
    "axe2.plot(1 - thresholds_2,tpr_2,label = 'TPR')\n",
    "axe2.plot(1 - thresholds_2,fpr_2,label = 'FPR')\n",
    "axe2.plot(1 - thresholds_3,tpr_3,label = 'TPR')\n",
    "axe2.plot(1 - thresholds_3,fpr_3,label = 'FPR')\n",
    "axe2.plot(1 - thresholds_4,tpr_4,label = 'TPR')\n",
    "axe2.plot(1 - thresholds_4,fpr_4,label = 'FPR')\n",
    "plt.xlim(0,)\n",
    "axe2.set_title('KS')\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.font_manager as fm\n",
    "import matplotlib\n",
    "matplotlib.rcParams['font.sans-serif']=['SimHei']   \n",
    "matplotlib.rcParams['axes.unicode_minus']=False  \n",
    "font={'family':'SimHei',\"size\":18}\n",
    "matplotlib.rc(\"font\",**font)\n",
    "fig=plt.figure(figsize=(5,5))\n",
    "plt.title('ROC曲线')\n",
    "plt.plot(fpr_1,tpr_1,color='g',label=\"ROC_1\")\n",
    "plt.plot(fpr_2,tpr_2,color='r',label=\"ROC_2\")\n",
    "plt.plot(fpr_3,tpr_3,color='b',label=\"ROC_3\")\n",
    "plt.plot(fpr_4,tpr_4,color='y',label=\"ROC_4\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "matplotlib.rcParams['font.sans-serif']=['SimHei']   \n",
    "matplotlib.rcParams['axes.unicode_minus']=False  \n",
    "font={'family':'SimHei',\"size\":18}\n",
    "matplotlib.rc(\"font\",**font)\n",
    "fig=plt.figure(figsize=(5,5))\n",
    "plt.title('KS曲线')\n",
    "plt.plot(1 - thresholds_1,tpr_1,color='g',label='TPR')\n",
    "plt.plot(1 - thresholds_1,fpr_1,color='g',label='FPR')\n",
    "plt.plot(1 - thresholds_2,tpr_2,color='r',label='TPR')\n",
    "plt.plot(1 - thresholds_2,fpr_2,color='r',label='FPR')\n",
    "plt.plot(1 - thresholds_3,tpr_3,color='b',label='TPR')\n",
    "plt.plot(1 - thresholds_3,tpr_3,color='b',label='FPR')\n",
    "plt.plot(1 - thresholds_4,tpr_4,color='y',label='TPR')\n",
    "plt.plot(1 - thresholds_4,tpr_4,color='y',label='FPR')\n",
    "plt.xlim(0,)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## k折交叉检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\") ##忽略警告"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率均值</th>\n",
       "      <th>准确率标准差</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>逻辑回归</th>\n",
       "      <td>0.74974</td>\n",
       "      <td>0.00028</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        准确率均值   准确率标准差\n",
       "逻辑回归  0.74974  0.00028"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#ef muti_score(model):\n",
    "warnings.filterwarnings('ignore')\n",
    "accuracy = cross_val_score(LR_model, X_train, y_train, scoring='accuracy', cv=5)\n",
    "acc_mean=accuracy.mean()\n",
    "acc_std=accuracy.std()\n",
    "results = pd.DataFrame()\n",
    "results[\"准确率均值\"] = [acc_mean]\n",
    "results[\"准确率标准差\"] = [acc_std]\n",
    "results.index = ['逻辑回归']\n",
    "results\n",
    "#rint(\"准确率均值\",accuracy.mean())\n",
    "#rint(\"准确率方差\",accuracy.var())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型psi计算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "def cal_psi(actual, predict, bins):\n",
    "    actual_min = actual.min()  # 实际中的最小概率\n",
    "    actual_max = actual.max()  # 实际中的最大概率\n",
    "    binlen = (actual_max - actual_min) / bins\n",
    "    cuts = [actual_min + i * binlen for i in range(1, bins)]#设定分组\n",
    "    cuts.insert(0, -float(\"inf\"))\n",
    "    cuts.append(float(\"inf\"))\n",
    "    actual_cuts = np.histogram(actual, bins=cuts)#将actual等距分箱\n",
    "    predict_cuts = np.histogram(predict, bins=cuts)#将predict按actual的分组等距分箱\n",
    "    actual_df = pd.DataFrame(actual_cuts[0],columns=['actual'])\n",
    "    predict_df = pd.DataFrame(predict_cuts[0], columns=['predict'])\n",
    "    psi_df = pd.merge(actual_df,predict_df,right_index=True,left_index=True)\n",
    "    psi_df['actual_rate'] = (psi_df['actual'] + 1) / psi_df['actual'].sum()#计算占比，分子加1，防止计算PSI时分子分母为0\n",
    "    psi_df['predict_rate'] = (psi_df['predict'] + 1) / psi_df['predict'].sum()\n",
    "    psi_df['psi'] = (psi_df['actual_rate'] - psi_df['predict_rate']) * np.log(\n",
    "        psi_df['actual_rate'] / psi_df['predict_rate'])\n",
    "    psi = psi_df['psi'].sum()\n",
    "    return psi, psi_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.001261076372877717,\n",
       "    actual  predict  actual_rate  predict_rate       psi\n",
       " 0    6477      882     0.024901      0.026265  0.000073\n",
       " 1   46393     5944     0.178336      0.176835  0.000013\n",
       " 2   82960    10416     0.318898      0.309855  0.000260\n",
       " 3   58670     7661     0.225528      0.227907  0.000025\n",
       " 4   32366     4460     0.124417      0.132693  0.000533\n",
       " 5   19698     2597     0.075722      0.077278  0.000032\n",
       " 6    9874     1242     0.037959      0.036973  0.000026\n",
       " 7    3069      343     0.011801      0.010232  0.000224\n",
       " 8     582       64     0.002241      0.001933  0.000045\n",
       " 9      60       10     0.000234      0.000327  0.000031)"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "psi_values11=cal_psi(y_proba_lr[:,1],y_proba_lr_1[:,1],10)\n",
    "psi_values11"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.0010643626770059287,\n",
       "    actual  predict  actual_rate  predict_rate       psi\n",
       " 0    6477      882     0.024901      0.026284  0.000075\n",
       " 1   46393     6046     0.178336      0.179997  0.000015\n",
       " 2   82960    10296     0.318898      0.306504  0.000491\n",
       " 3   58670     7702     0.225528      0.229290  0.000062\n",
       " 4   32366     4377     0.124417      0.130317  0.000273\n",
       " 5   19698     2608     0.075722      0.077660  0.000049\n",
       " 6    9874     1233     0.037959      0.036732  0.000040\n",
       " 7    3069      379     0.011801      0.011311  0.000021\n",
       " 8     582       67     0.002241      0.002024  0.000022\n",
       " 9      60        5     0.000234      0.000179  0.000015)"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "psi_values12=cal_psi(y_proba_lr[:,1],y_proba_lr_2[:,1],10)\n",
    "psi_values12"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.0011136537645807056,\n",
       "    actual  predict  actual_rate  predict_rate           psi\n",
       " 0    6477      938     0.024901      0.027788  3.165910e-04\n",
       " 1   46393     6127     0.178336      0.181345  5.032736e-05\n",
       " 2   82960    10403     0.318898      0.307884  3.871574e-04\n",
       " 3   58670     7634     0.225528      0.225941  7.541687e-07\n",
       " 4   32366     4358     0.124417      0.128995  1.654155e-04\n",
       " 5   19698     2587     0.075722      0.076586  9.806727e-06\n",
       " 6    9874     1263     0.037959      0.037405  8.136565e-06\n",
       " 7    3069      417     0.011801      0.012370  2.678149e-05\n",
       " 8     582       62     0.002241      0.001864  6.931682e-05\n",
       " 9      60        3     0.000234      0.000118  7.936674e-05)"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "psi_values13=cal_psi(y_proba_lr[:,1],y_proba_lr_3[:,1],10)\n",
    "psi_values13"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.0013803557635795323,\n",
       "    actual  predict  actual_rate  predict_rate       psi\n",
       " 0    6477      908     0.024901      0.027101  0.000186\n",
       " 1   46393     6028     0.178336      0.179750  0.000011\n",
       " 2   82960    10424     0.318898      0.310814  0.000208\n",
       " 3   58670     7494     0.225528      0.223458  0.000019\n",
       " 4   32366     4424     0.124417      0.131928  0.000440\n",
       " 5   19698     2631     0.075722      0.078471  0.000098\n",
       " 6    9874     1212     0.037959      0.036165  0.000087\n",
       " 7    3069      360     0.011801      0.010763  0.000096\n",
       " 8     582       52     0.002241      0.001580  0.000231\n",
       " 9      60        8     0.000234      0.000268  0.000005)"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "psi_values14=cal_psi(y_proba_lr[:,1],y_proba_lr_4[:,1],10)\n",
    "psi_values14"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.001204862144510971"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bcc2=[psi_values11[0],psi_values12[0],psi_values13[0],psi_values14[0]]\n",
    "bbc2=np.mean(bcc2)\n",
    "bbc2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PSI</th>\n",
       "      <th>PSI_1</th>\n",
       "      <th>PSI_2</th>\n",
       "      <th>PSI_3</th>\n",
       "      <th>PSI_4</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>逻辑回归</th>\n",
       "      <td>0.001205</td>\n",
       "      <td>0.001261</td>\n",
       "      <td>0.001064</td>\n",
       "      <td>0.001114</td>\n",
       "      <td>0.00138</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           PSI     PSI_1     PSI_2     PSI_3    PSI_4\n",
       "逻辑回归  0.001205  0.001261  0.001064  0.001114  0.00138"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results111 =pd.DataFrame({'PSI':{'逻辑回归':bbc2},'PSI_1':{'逻辑回归':psi_values11[0]},'PSI_2':{'逻辑回归':psi_values12[0]},\n",
    "                   'PSI_3':{'逻辑回归':psi_values13[0]},'PSI_4':{'逻辑回归':psi_values14[0]}})\n",
    "results111"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
